Point cloud data transmission device, transmission method, processing device and processing method

By encoding and decoding point cloud data, especially transforming the position and attributes of points, the problem of high complexity in point cloud data processing is solved, enabling efficient point cloud services that support applications such as VR, AR, and autonomous driving.

CN115280780BActive Publication Date: 2026-03-27LG ELECTRONICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-03-15
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

Existing technologies struggle to efficiently process large amounts of point cloud data, resulting in high latency and encoding/decoding complexity, which impacts the quality and efficiency of point cloud services.

Method used

By encoding and decoding point cloud data, including transforming the position and attributes of points, point cloud encoders and decoders are used for efficient processing. Geometric and attribute encoding techniques are used in conjunction with signaling information for encoding and decoding operations.

Benefits of technology

It achieves efficient processing of point cloud data, improves the quality and efficiency of point cloud services, and supports the provision of point cloud content for services such as VR, AR, and autonomous driving.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115280780B_ABST
    Figure CN115280780B_ABST
Patent Text Reader

Abstract

The point cloud data transmission method according to the embodiments includes the steps of: encoding point cloud data including geometry and attributes, wherein the geometry is information indicating the position of the points of the point cloud data, the attributes include at least one of the color and reflectivity of the points, and the step of encoding the point cloud data includes the steps of: transforming the coordinates indicating the position of the points; and transmitting a bitstream including the encoded point cloud data, wherein the point cloud data can be encoded and transmitted.
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

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

[0003] TECHNICAL PROBLEM

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

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

[0006] TECHNICAL SOLUTION

[0007] To achieve these objects and other advantages and according to the purpose of the present disclosure, in some embodiments, a method of transmitting point cloud data can include the steps of encoding point cloud data including geometry and attributes, and transmitting a bitstream containing the encoded point cloud data. The geometry can be information indicating positions of points of the point cloud data, and the attributes can include at least one of colors and reflectances of the points. The step of encoding the point cloud data can include transforming coordinates representing the positions of the points.

[0008] In some embodiments, an apparatus of transmitting point cloud data can include an encoder configured to encode point cloud data including geometry and attributes and transmit a bitstream containing the encoded point cloud data. The geometry can be information indicating positions of points of the point cloud data, and the attributes can include at least one of colors and reflectances of the points. The encoder of the point cloud data can transform coordinates representing the positions of the points.

[0009] In some embodiments, a method of processing point cloud data can include the steps of receiving a bitstream containing point cloud data, and decoding the point cloud data. The bitstream can contain signaling information. The point cloud data can include geometry and attributes. The geometry can be information indicating positions of points in the point cloud data, and the attributes can include at least one of colors and reflectivities of the points. The step of decoding the point cloud data can include transforming coordinates representing the positions of the points based on the signaling information.

[0010] In some embodiments, an apparatus of processing point cloud data can include a receiver configured to receive a bitstream containing point cloud data, and a decoder configured to decode the point cloud data. The bitstream can contain signaling information. Point cloud data can include geometry and attributes. Geometry can be information indicating positions of points in the point cloud data, and attributes can include at least one of colors and reflectivities of the points. The decoder can transform coordinates representing the positions of the points based on the signaling information.

[0011] Advantages

[0012] Devices and methods according to some embodiments can efficiently process point cloud data.

[0013] Devices and methods according to some embodiments can provide high quality point cloud services.

[0014] Devices and methods according to some embodiments can provide point cloud contents for general services including VR services, autonomous driving services. BRIEF DESCRIPTION OF DRAWINGS

[0015] The accompanying drawings, which are included to provide a further understanding of the disclosure and are incorporated in and constitute a part of this application, illustrate embodiments of the disclosure and together with the description serve to explain the principles of the disclosure. In order to facilitate a fuller understanding of the various embodiments described below, reference is made to the accompanying drawings, which are incorporated herein and together with the description, serve to explain the principles of the disclosure. Throughout the drawings, like references will be used to designate like or similar elements. In the drawings:

[0016] FIG. 1 shows an exemplary point cloud content providing system according to an embodiment;

[0017] FIG. 2 is a block diagram showing a point cloud content providing operation according to an embodiment;

[0018] FIG. 3 shows an exemplary processing of capturing a point cloud video according to an embodiment;

[0019] FIG. 4An exemplary point cloud encoder according to an embodiment is shown;

[0020] FIG. 5 An example of a voxel according to an embodiment is shown;

[0021] FIG. 6 An example of an octree and occupancy code according to an embodiment is shown;

[0022] FIG. 7 An example of a neighbor node pattern according to an embodiment is shown;

[0023] FIG. 8 An example of point configurations in various LODs according to an embodiment is shown;

[0024] FIG. 9 An example of point configurations in various LODs according to an embodiment is shown;

[0025] FIG. 10 A point cloud decoder according to an embodiment is shown;

[0026] FIG. 11 A point cloud decoder according to an embodiment is shown;

[0027] FIG. 12 A transmitting apparatus according to an embodiment is shown;

[0028] FIG. 13 A receiving apparatus according to an embodiment is shown;

[0029] FIG. 14 An exemplary structure operable in conjunction with the point cloud data transmitting / receiving method / apparatus according to an embodiment is shown;

[0030] FIG. 15 A flowchart showing operations of a point cloud data transmitting apparatus according to an embodiment is shown;

[0031] FIG. 16 An example of operations of a point cloud data transmitting apparatus is shown;

[0032] FIG. 17 An example of a processing procedure of a point cloud transmitting apparatus is shown;

[0033] FIG. 18 An example of coordinate transformation is shown;

[0034] FIG. 19 An example of a coordinate system is shown;

[0035] FIG. 20 An example of coordinate transformation is shown;

[0036] FIG. 21 An example of coordinate projection is shown;

[0037] FIG. 22 An example of laser position adjustment is shown;

[0038] FIG. 23 An example of voxelization is shown;

[0039] FIG. 24 An example of a syntax structure of signaling information related to projection is shown;

[0040] FIG. 25 An example of signaling information according to an embodiment is shown;

[0041] FIG. 26 An example of signaling information according to an embodiment is shown;

[0042] FIG. 27 An example of signaling information according to an embodiment is shown;

[0043] FIG. 28 is signaling information according to an embodiment;

[0044] FIG. 29 is a flowchart showing an operation of a point cloud data receiving apparatus according to an embodiment;

[0045] FIG. 30 An example of an operation of a point cloud receiving apparatus is shown;

[0046] FIG. 31 An example of a processing procedure of a point cloud receiving apparatus is shown;

[0047] FIG. 32 An example of inverse projection is shown;

[0048] FIG. 33 An example of a processing procedure of a point cloud receiving apparatus according to an embodiment is shown;

[0049] FIG. 34 is a flowchart showing a method of transmitting point cloud data according to an embodiment; and

[0050] FIG. 35 is a flowchart showing a method of processing point cloud data according to an embodiment. DETAILED DESCRIPTION

[0051] Reference will now be made in detail to the preferred embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. The detailed description, which will be given below with reference to the accompanying drawings, is intended to explain exemplary embodiments of the present disclosure, rather than to show 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 such specific details.

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

[0053] FIG. 1 An exemplary point cloud content providing system according to an embodiment is illustrated.

[0054] FIG. 1 The illustrated point cloud content providing system can include a transmitting device 10000 and a receiving device 10004. The transmitting device 10000 and the receiving device 10004 can communicate in wire or wirelessly to transmit and receive point cloud data.

[0055] The point cloud data transmitting device 10000 according to an embodiment can acquire and process point cloud videos (or point cloud contents) and transmit the same. According to an embodiment, the transmitting device 10000 can 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 can include a device configured to perform communication 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.

[0056] The transmitting device 10000 according to an embodiment includes a point cloud video acquirer 10001, a point cloud video encoder 10002, and / or a transmitter (or a communication module) 10003.

[0057] The point cloud video acquirer 10001 according to an embodiment acquires a point cloud video through a processing procedure such as capturing, synthesizing, or generating. The point cloud video is a point cloud content represented by a point cloud, the point cloud is a set of points located in a 3D space, and can be referred to as point cloud video data. The point cloud video according to an embodiment can include one or more frames. One frame represents a still image / picture. Accordingly, the point cloud video can include point cloud images / frames / pictures, and can be referred to as a point cloud image, frame, or picture.

[0058] The point cloud video encoder 10002 according to the embodiment encodes the acquired point cloud video data. The point cloud video encoder 10002 can encode the point cloud video data based on point cloud compression encoding. The point cloud compression encoding according to the embodiment can include geometry-based point cloud compression (G-PCC) encoding and / or video-based point cloud compression (V-PCC) encoding or next generation encoding. The point cloud compression encoding according to the embodiment is not limited to the above-described embodiment. The point cloud video encoder 10002 can output a bitstream including the encoded point cloud video data. The bitstream can include not only the encoded point cloud video data but also signaling information related to the encoding of the point cloud video data.

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

[0060] The reception device 10004 according to the embodiment includes the receiver 10005, a point cloud video decoder 10006, and / or a renderer 10007. According to the embodiment, the reception device 10004 can include a device, 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 configured to perform communication with a base station and / or other wireless devices using a radio access technology (e.g., 5G New RAT (NR), Long Term Evolution (LTE)).

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

[0062] The point cloud video decoder 10006 decodes the bitstream including the point cloud video data. The point cloud video decoder 10006 can decode the point cloud video data according to a method by which the point cloud video data is encoded (e.g., inverse processing of the operation of the point cloud video encoder 10002). Accordingly, the point cloud video decoder 10006 can decode the point cloud video data by performing point cloud decompression encoding (inverse processing of point cloud compression). The point cloud decompression encoding includes G-PCC encoding.

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

[0064] The arrow indicated by the dotted line in the drawing represents a transmission path of feedback information acquired by the reception device 10004. The feedback information is information reflecting interactivity with a user who consumes the point cloud content, and includes information about the user (e.g., head orientation information, viewport information, or the like). Specifically, when the point cloud content is content for a service (e.g., a self-driving service or the like) that requires interaction with the user, the feedback information can be provided to a content sender (e.g., the transmission device 10000) and / or a service provider. According to the embodiment, the feedback information can be used in the reception device 10004 as well as the transmission device 10000, or can not be provided.

[0065] The head orientation information according to the embodiments is information about a head position, orientation, angle, motion, etc. of the user. The reception device 10004 according to the embodiments can calculate the viewport information based on the head orientation information. The viewport information can be information about a region of the point cloud video that the user is watching. The viewpoint is a point through which the user watches the point cloud video, and can refer to a center point of the viewport region. That is, the viewport is a region centered on the viewpoint, and the size and shape of the region can be determined by a field of view (FOV). Thus, the reception device 10004 can extract the viewport information based on a vertical or horizontal FOV supported by the device in addition to the head orientation information. In addition, the reception device 10004 performs gaze analysis, etc. to check the way in which the user consumes the point cloud, a region in which the user gazes in the point cloud video, a gaze time, etc. According to the embodiments, the reception device 10004 can transmit feedback information including the gaze analysis result to the transmission device 10000. The feedback information according to the embodiments can be acquired in the rendering and / or display process. The feedback information according to the embodiments can be acquired by one or more sensors included in the reception device 10004. According to the embodiments, the feedback information can be acquired by the Tenderer 10007 or a separate external element (or device, component, etc.). FIG. 1 The dotted line in the above equation indicates a process of transmitting feedback information acquired by the Tenderer 10007. The point cloud content providing system can process (encode / decode) the point cloud data based on the feedback information. Thus, the point cloud video data decoder 10006 can perform a decoding operation based on the feedback information. The reception device 10004 can transmit the feedback information to the transmission device 10000. The transmission device 10000 (or the point cloud video data encoder 10002) can perform an encoding operation based on the feedback information. Thus, the point cloud content providing system can efficiently process necessary data (e.g., point cloud data corresponding to the head position of the user) based on the feedback information rather than processing (encoding / decoding) the entire point cloud data, and provide the point cloud content to the user.

[0066] According to the embodiments, the transmission device 10000 can be referred to as an encoder, a transmission device, a transmitter, etc., and the reception device 10004 can be referred to as a decoder, a reception device, a receiver, etc.

[0067] The point cloud content data processed in the point cloud content providing system according to the embodiments (through a series of processes of acquisition / encoding / transmission / decoding / rendering) can be referred to as point cloud content data or point cloud video data. According to the embodiments, the point cloud content data can be used as a concept that encompasses metadata or signaling information related to the point cloud data. FIG. 1

[0068] The elements of the point cloud content providing system shown in the above equation can be implemented by hardware, software, a processor, and / or a combination thereof. FIG. 1

[0069] ​FIG. 2 is a block diagram illustrating a point cloud content providing operation according to an embodiment.

[0070] FIG. 2 a block diagram illustrating FIG. 1 the operation of the point cloud content providing system described in

[0071] The point cloud content providing system (e.g., the point cloud transmitting apparatus 10000 or the point cloud video acquirer 10001) according to an embodiment 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. The point cloud video according to an embodiment can include a Ply (Polygon file format or Stanford Triangle format) file. When the point cloud video has one or more frames, the acquired point cloud video can include one or more Ply files. The Ply file includes point cloud data such as point geometry and / or attributes. The geometry includes the position of a point. The position of each point can be represented by a parameter (e.g., the values of X, Y, and Z axes) representing a three-dimensional coordinate system (e.g., a coordinate system consisting of X, Y, and Z axes). The attributes include attributes of a point (e.g., information about the texture, color (YCbCr or RGB), reflectance r, transparency, etc. of each point). A point has one or more attributes. For example, a point can have a color attribute or both color and reflectance attributes. According to an embodiment, the geometry can be referred to as a position, geometry information, geometry data, etc., and the attributes can be referred to as attributes, attribute information, attribute data, etc. The point cloud content providing system (e.g., the point cloud transmitting apparatus 10000 or the point cloud video acquirer 10001) can acquire point cloud data from information (e.g., depth information, color information, etc.) related to a point cloud video acquisition process.

[0072] The point cloud content providing system (e.g., the transmitting apparatus 10000 or the point cloud video encoder 10002) according to an embodiment can encode point cloud data (20001). The point cloud content providing system can encode the point cloud data based on point cloud compression encoding. As described above, the point cloud data can include the geometry and attributes of a point. Accordingly, the point cloud content providing system can perform geometry encoding that encodes the geometry and output a geometry bitstream. The point cloud content providing system can perform attribute encoding that encodes the attributes and output an attribute bitstream. According to an embodiment, the point cloud content providing system can perform the attribute encoding based on the geometry encoding. The geometry bitstream and the attribute bitstream according to an embodiment can be multiplexed and output as one bitstream. The bitstream according to an embodiment can further include signaling information related to the geometry encoding and the attribute encoding.

[0073] A point cloud content providing system (e.g., a transmitting apparatus 10000 or a transmitter 10003) according to an embodiment can transmit encoded point cloud data (20002). As shown in FIG. 1 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 transmitted in the form of a bitstream together with signaling information related to 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 transmit it in the form of a file or a segment.

[0074] A point cloud content providing system (e.g., a receiving apparatus 10004 or a receiver 10005) according to an embodiment can receive a bitstream including encoded point cloud data. In addition, the point cloud content providing system (e.g., a receiving apparatus 10004 or a receiver 10005) can demultiplex the bitstream.

[0075] The point cloud content providing system (e.g., a receiving apparatus 10004 or a point cloud video decoder 10005) can decode the encoded point cloud data (e.g., a geometry bitstream, an attribute bitstream) transmitted in the bitstream. The point cloud content providing system (e.g., a receiving apparatus 10004 or a point cloud video decoder 10005) can decode the point cloud video data based on the signaling information related to encoding of the point cloud video data included in the bitstream. The point cloud content providing system (e.g., a receiving apparatus 10004 or a point cloud video decoder 10005) can decode the geometry bitstream to reconstruct the positions (geometry) of points. The point cloud content providing system can reconstruct the attributes of points by decoding the attribute bitstream based on the reconstructed geometry. The point cloud content providing system (e.g., a receiving apparatus 10004 or a point cloud video decoder 10005) can reconstruct the point cloud video based on the positions from the reconstructed geometry and the decoded attributes.

[0076] A point cloud content providing system (e.g., a receiving apparatus 10004 or a renderer 10007) according to an embodiment can render the decoded point cloud data (20004). The point cloud content providing system (e.g., a receiving apparatus 10004 or a renderer 10007) can render the geometry and the attributes decoded through the decoding process using various rendering methods. The points in the point cloud content can be rendered as a vertex having a certain thickness, a cube having a certain minimum size centered on a corresponding vertex position, or a circle centered on a corresponding vertex position. All or part of the rendered point cloud content is provided to a user through a display (e.g., a VR / AR display, a general display, etc.).

[0077] The point cloud content providing system (e.g., reception device 10004) according to embodiments can acquire feedback information (20005). The point cloud content providing system can encode and / or decode point cloud data based on the feedback information. The feedback information and operations of the point cloud content providing system according to embodiments are the same as those described with reference to FIG. 1 The feedback information and operations described are the same, and thus a detailed description thereof is omitted.

[0078] FIG. 3 An exemplary process of capturing a point cloud video according to embodiments is illustrated.

[0079] FIG. 3 An exemplary point cloud video capturing process of the point cloud content providing system described with reference to FIG. 1-2 The exemplary point cloud video capturing process of the point cloud content providing system described.

[0080] Point cloud content includes point cloud videos (images and / or videos) representing objects and / or environments located in various 3D spaces (e.g., 3D spaces representing real environments, 3D spaces representing virtual environments, etc.). Thus, the point cloud content providing system according to embodiments can capture point cloud videos using one or more cameras (e.g., infrared cameras capable of acquiring depth information, RGB cameras capable of extracting color information corresponding to depth information, etc.), projectors (e.g., infrared pattern projectors acquiring depth information), lidars, etc. The point cloud content providing system according to embodiments can extract a geometry consisting of points in a 3D space from depth information and extract attributes of each point from color information to acquire point cloud data. The images and / or videos according to embodiments can be captured based on at least one of an inside-out technique and an outside-in technique.

[0081] FIG. 3 The left portion of FIG. 1 illustrates an inside-out technique. The inside-out technique refers to a technique of capturing an image of a central object with one or more cameras (or camera sensors) positioned around the central object. The inside-out technique can be used to generate point cloud content providing a 360-degree image of a key object to a user (e.g., VR / AR content providing a 360-degree image of an object (e.g., a key object such as a character, a player, an object, or an actor) to a user).

[0082] FIG. 3 The right portion of FIG. 1 illustrates an outside-in technique. The outside-in technique refers to a technique of capturing an image of an environment of a central object, not the central object, with one or more cameras (or camera sensors) positioned around the central object. The outside-in technique can be used to generate point cloud content providing a surrounding environment appearing from a user's perspective (e.g., content representing an external environment that can be provided to a user of a self-driving vehicle).

[0083] As illustrated, the point cloud content can be generated based on the capturing operation of one or more cameras. In this case, the coordinate system can be different between the cameras, and thus the point cloud content providing system can calibrate the one or more cameras to set a global coordinate system before the capturing operation. In addition, the point cloud content providing system can generate the point cloud content by synthesizing an arbitrary image and / or video with an image and / or video captured through the above-described capturing technique. The point cloud content providing system can not perform the capturing operation described in FIG. 3 FIG. 6. According to the point cloud content providing system of the embodiment, post-processing can be performed on the captured image and / or video. In other words, the point cloud content providing system can remove an unwanted area (e.g., a background), identify a space to which the captured image and / or video is connected, and perform an operation of filling a space hole when there is a space hole.

[0084] The point cloud content providing system can generate one piece of point cloud content by performing coordinate transformation on points of a point cloud video taken from each camera. The point cloud content providing system can perform coordinate transformation on points based on position coordinates of each camera. Thus, the point cloud content providing system can generate content representing a wide range, or can generate point cloud content having a high density of points.

[0085] FIG. 4 An exemplary point cloud encoder according to an embodiment is illustrated.

[0086] FIG. 4 An example of a point cloud video encoder 10002 according to an embodiment is illustrated. FIG. 1 The point cloud encoder reconstructs and encodes point cloud data (e.g., positions and / or attributes of points) to adjust the quality of the point cloud content (e.g., lossless, lossy, or close to 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 is given for 30 fps), the point cloud content providing system can not be able to stream the content in real time. Thus, the point cloud content providing system can reconstruct the point cloud content based on a maximum target bitrate to provide the point cloud content according to network environments, etc.

[0087] As described with reference to FIG. 1-2 The point cloud encoder can perform geometry encoding and attribute encoding. The geometry encoding is performed before the attribute encoding.

[0088] The point cloud encoder according to the embodiments includes a coordinate transformer (transform coordinates) 40000, a quantizer (quantize and remove points (voxelize)) 40001, an octree analyzer (analyze octree) 40002 and a surface approximation analyzer (analyze surface approximation) 40003, an arithmetic encoder (arithmetic encode) 40004, a geometry reconstructor (reconstruct geometry) 40005, a color transformer (transform color) 40006, an attribute transformer (transform attribute) 40007, a RAHT transformer (RAHT) 40008, a LOD generator (generate LOD) 40009, a lifting transformer (lift) 40010, a coefficient quantizer (quantize coefficients) 40011, and / or an arithmetic encoder (arithmetic encode) 40012.

[0089] The coordinate transformer 40000, the quantizer 40001, the octree analyzer 40002, the surface approximation analyzer 40003, the arithmetic encoder 40004, and the geometry reconstructor 40005 can perform geometry encoding. The geometry encoding according to the embodiments can include octree geometry encoding, direct encoding, trisoup geometry encoding, and entropy encoding. The direct encoding and the trisoup geometry encoding are selectively or in combination applied. The geometry encoding is not limited to the above-described examples.

[0090] As illustrated, the coordinate transformer 40000 according to the embodiments receives a position and transforms it into coordinates. For example, the position can be transformed into position information in a three-dimensional space (for example, a three-dimensional space represented by an XYZ coordinate system). The position information in the three-dimensional space according to the embodiments can be referred to as geometry information.

[0091] The quantizer 40001 according to the embodiment performs geometry quantization. For example, the quantizer 40001 can quantize points based on minimum position values (e.g., minimum values on each of X, Y, and Z axes) of all points. The quantizer 40001 performs a quantization operation of multiplying a difference between the minimum position values and position values of respective points by a preset quantization scale value and then finding a nearest integer value by rounding the value obtained through the multiplication. Accordingly, one or more points can have the same quantized position (or position value). The quantizer 40001 according to the embodiment performs voxelization based on the quantized position to reconstruct quantized points. As in the case of a pixel (a minimum unit of 2D image / video information), points of a point cloud content (or 3D point cloud video) according to the embodiment can be included in one or more voxels. As a compound of a volume and a pixel, the term voxel refers to a 3D cubic space generated when a 3D space is divided into units (unit = 1.0) based on axes (e.g., X, Y, and Z axes) representing the 3D space. The quantizer 40001 can match a group of points in the 3D space to voxels. According to the embodiment, one voxel can include only one point. According to the embodiment, one voxel can include one or more points. In order to represent one voxel as one point, a position of a center of the voxel can be set based on positions of one or more points included in the voxel. In this case, attributes of all positions included in one voxel can be combined and assigned to the voxel.

[0092] The octree analyzer 40002 according to the embodiment performs octree geometry encoding (or octree encoding) to present voxels in an octree structure. The octree structure represents points matched to voxels based on an octal tree structure.

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

[0094] The arithmetic encoder 40004 according to the embodiment performs entropy encoding on an octree and / or an approximated octree. For example, an encoding scheme includes arithmetic encoding. As a result of encoding, a geometry bitstream is generated.

[0095] The color transformer 40006, the attribute transformer 40007, the RAHT transformer 40008, the LOD generator 40009, the lifting transformer 40010, the coefficient quantizer 40011, and / or the arithmetic encoder 40012 perform attribute encoding. As described above, one point can have one or more attributes. The attribute encoding according to the embodiments is equally applied to the attributes that one point has. However, when an attribute (e.g., color) includes one or more elements, the attribute encoding is independently applied to the respective elements. The attribute encoding according to the embodiments includes color transform encoding, attribute transform encoding, region-adaptive hierarchical transform (RAHT) encoding, interpolation-based hierarchical nearest neighbor prediction (predictive transform) encoding, and interpolation-based hierarchical nearest neighbor prediction with update / lifting step (lifting transform) encoding. The above-described RAHT encoding, predictive transform encoding, and lifting transform encoding can be selectively used according to the point cloud content, or a combination of one or more encoding schemes can be used. The attribute encoding according to the embodiments is not limited to the above-described examples.

[0096] The color transformer 40006 according to the embodiments performs color transform encoding that transforms a color value (or texture) included in an attribute. For example, the color transformer 40006 can transform the format of color information (e.g., from RGB to YCbCr). Alternatively, the operation of the color transformer 40006 according to the embodiments can be applied according to the color value included in the attribute.

[0097] The geometry reconstructor 40005 according to the embodiments reconstructs (decompresses) an octree and / or an approximate octree. The geometry reconstructor 40005 reconstructs an octree / voxel based on the result of analyzing the distribution of points. The reconstructed octree / voxel can be referred to as reconstructed geometry (restored geometry).

[0098] The attribute transformer 40007 according to the embodiments performs attribute transform to transform an attribute based on the reconstructed geometry and / or a position for which geometry encoding is not performed. As described above, since an attribute is dependent on geometry, the attribute transformer 40007 can transform an attribute based on the reconstructed geometry information. For example, based on the position value of a point included in a voxel, the attribute transformer 40007 can transform the attribute of the point at the 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 transformer 40007 transforms the attributes of the one or more points. When trisoup geometry encoding is performed, the attribute transformer 40007 can transform an attribute based on the trisoup geometry encoding.

[0099] The attribute transformer 40007 can perform an attribute transform by calculating an average of attributes or attribute values (e.g., colors or reflectances of respective points) of neighboring points within a certain position / radius from a center position (or position value) of each voxel. The attribute transformer 40007 can apply a weight according to a distance from the center to each point when calculating the average. Accordingly, each voxel has a position and a calculated attribute (or attribute value).

[0100] The attribute transformer 40007 can search for neighboring points existing within a certain position / radius from a center position of each voxel based on a K-D tree or a Morton code. The K-D tree is a binary search tree and supports a data structure capable of managing points based on positions, so that a nearest neighbor search (NNS) can be quickly performed. The Morton code is generated by presenting coordinates (e.g., (x, y, z)) representing 3D positions of all points as bit values and mixing the bits. For example, when the coordinates representing the positions of points are (5, 9, 1), the bit values of the coordinates are (0101, 1001, 0001). Mixing the bit values according to bit indexes in the order of z, y, and x results in 010001000111. This value is represented as a decimal number 1095. That is, the Morton code value of the point having the coordinates (5, 9, 1) is 1095. The attribute transformer 40007 can sort points based on the Morton code values and perform an NNS through a depth-first traversal process. The K-D tree or the Morton code is used when an NNS is needed in another transform process for attribute encoding after the attribute transform operation.

[0101] As illustrated, the transformed attribute is input to the RAHT transformer 40008 and / or the LOD generator 40009.

[0102] The RAHT transformer 40008 according to an embodiment performs RAHT encoding for predicting attribute information based on reconstructed geometry information. For example, the RAHT transformer 40008 can predict attribute information of a node at a higher level in an octree based on attribute information associated with a node at a lower level in the octree.

[0103] The LOD generator 40009 according to an embodiment generates a level of detail (LOD) to perform predictive transform encoding. The LOD according to an embodiment is a degree of detail of point cloud content. As the LOD value decreases, the detail of the point cloud content is indicated to deteriorate. As the LOD value increases, the detail of the point cloud content is indicated to enhance. Points can be classified by LOD.

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

[0105] The attribute quantizer 40011 according to the embodiment quantizes the attribute encoded attribute based on the coefficient.

[0106] The arithmetic encoder 40012 according to the embodiment encodes the quantized attribute based on arithmetic encoding.

[0107] Although not shown in the drawings, FIG. 4 The elements of the point cloud encoder of the above-described FIG. 4 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 apparatus. The one or more processors can perform at least one of the operations and / or functions of the elements of the point cloud encoder of the above-described FIG. 4 Additionally, the one or more processors can operate or execute a software program and / or a set of instructions for performing the operations and / or functions of the elements of the point cloud encoder of the above-described

[0108] FIG. 5 An example of a voxel according to an embodiment is illustrated.

[0109] FIG. 5 A voxel located in a 3D space represented by a coordinate system composed of three axes (X-axis, Y-axis, and Z-axis) is illustrated. As described with reference to FIG. 4 The point cloud encoder (e.g., the quantizer 40001) can perform voxelization. A voxel refers to a 3D cubic space generated when a 3D space is divided into units (unit = 1.0) based on axes (e.g., X-axis, Y-axis, and Z-axis) representing the 3D space. FIG. 5 An example of a voxel generated by an octree structure in which a cubic axis-aligned bounding box defined by two poles (0, 0, 0) and (2d, 2d, 2d) is recursively subdivided is illustrated. One voxel includes at least one point. The spatial coordinates of the voxel can be estimated from the positional relationship with a group of voxels. As described above, a voxel has attributes (e.g., color or reflectance) similar to pixels of a 2D image / video. Details of the voxel are the same as those described with reference to FIG. 4 and thus a description thereof is omitted.

[0110] FIG. 6 An example of an octree and an occupancy code according to an embodiment is illustrated.

[0111] As described with reference to FIG. 1-4As described, the point cloud content delivery system (point cloud video encoder 10002) or point cloud encoder (e.g., octree analyzer 40002) performs octree geometric encoding (or octree encoding) based on an octree structure to efficiently manage the regions and / or locations of voxels.

[0112] FIG. 6 The upper part shows an octree structure. The 3D space of the point cloud content according to the embodiment is represented by the axes of a coordinate system (e.g., the X, Y, and Z axes). This is achieved by using two poles (0,0,0) and (2... d ,2 d ,2 d An octree structure is created by recursively subdividing the bounding box with the cubic axis aligned to the bounding box. Here, 2 d This can be set to the value of the minimum bounding box that constitutes all points surrounding 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 ) indicates the position (or position value) of the quantized point.

[0113]

[0114] like FIG. 6 As shown in the upper center, the entire 3D space can be divided into eight spaces. Each divided space is represented by a cube with six faces. (See diagram below.) FIG. 6 As shown in the upper right, each of the eight spaces is further subdivided based on a coordinate system axis (e.g., the X, Y, and Z axes). Thus, each space is divided into eight smaller spaces. These smaller spaces are also represented by cubes with six faces. This partitioning scheme is applied until the leaf nodes of the octree become voxels.

[0115] FIG. 6 The lower part shows the octree occupancy code. The occupancy code generates the octree to indicate whether each of the eight partitions generated by dividing a space includes at least one node. Therefore, a single occupancy code is represented by eight child nodes. Each child node represents the occupancy of a partitioned space, and each 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 a child node includes at least one node, the node is assigned a value of 1. When the space corresponding to a child node does not include any node (the space is empty), the node is assigned a value of 0. Since... FIG. 4The occupancy code shown is 00100001, so it indicates that each of the spaces corresponding to the third and eighth sub-nodes among the eight sub-nodes includes at least one point. As shown, each of the third and eighth sub-nodes has eight sub-nodes, and the sub-nodes are represented by 8-bit occupancy codes. The drawing shows that the occupancy code of the third sub-node is 10000111, and the occupancy code of the eighth sub-node is 01001111. The point cloud encoder (e.g., the arithmetic encoder 40004) according to the embodiment can perform entropy encoding on the occupancy codes. To increase compression efficiency, the point cloud encoder can perform intra / inter-frame encoding on the occupancy codes. 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 codes.

[0116] The point cloud encoder (e.g., the arithmetic encoder 40004) according to the embodiment can perform voxelization and octree encoding to store the point positions. However, points are not always uniformly distributed in 3D space, so there can be a specific region in which fewer points exist. Therefore, it is inefficient to perform voxelization on the entire 3D space. For example, when a specific region includes very few points, voxelization does not need to be performed in the specific region. FIG. 7

[0117] Therefore, for the above-described specific region (or a node other than a leaf node of the octree), the point cloud encoder according to the embodiment can skip voxelization and perform direct encoding to directly encode the point positions included in the specific region. The coordinates of the points directly encoded according to the embodiment are referred to as direct coding mode (DCM). The point cloud encoder according to the embodiment can also perform trisoup geometry encoding based on a surface model, which is to reconstruct the point positions in the specific region (or node) based on voxels. Trisoup 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. The direct encoding and the trisoup geometry encoding according to the embodiment can be selectively performed. In addition, the direct encoding and the trisoup geometry encoding according to the embodiment can be performed in combination with octree geometry encoding (or octree encoding).

[0118] To perform direct encoding, an option to apply direct encoding using a direct mode should be enabled. The node to which direct encoding is to be applied is not a leaf node, and there should be fewer points than a threshold 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 satisfied, the point cloud encoder (or the arithmetic encoder 40004) according to the embodiment can perform entropy encoding on the point positions (or position values).

[0119] ​The point cloud encoder (e.g., the surface approximation analyzer 40003) according to the embodiments can determine a certain level of the octree (a level less than the depth d of the octree), and can start using the surface model from the level to perform the trisoup geometry encoding to reconstruct the point positions in the node region based on voxels (trisoup mode). The point cloud encoder according to the embodiments can specify the level to which the trisoup geometry encoding is to be applied. For example, when the certain level is equal to the depth of the octree, the point cloud encoder does not operate in the trisoup mode. In other words, the point cloud encoder according to the embodiments can operate in the trisoup mode only when the specified level is less than the depth value of the octree. The 3D cubical region of the node according to the specified level is referred to as a block. One block can include one or more voxels. The block or the voxel can correspond to a tile. The geometry is represented as a surface within each block. The surface according to the embodiments can intersect with each edge of the block at most once.

[0120] One block has 12 edges, and thus there are at least 12 intersection points in one block. Each intersection point is referred to as a vertex. When there is at least one occupied voxel adjacent to an edge among all blocks sharing the edge, the vertex existing along the edge is detected. The occupied voxel according to the embodiments refers to a voxel including a point. The vertex position detected along the edge is an average position of the edges of all voxels adjacent to the edge among all blocks sharing the edge.

[0121] Once the vertex is detected, the point cloud encoder according to the embodiments can perform entropy encoding on the origin of the edge (x, y, z), the direction vector of the edge (Δx, Δy, Δz), and the vertex position value (a relative position value within the edge). When the trisoup geometry encoding is applied, the point cloud encoder (e.g., the geometry reconstructor 40005) according to the embodiments can generate the restored geometry (reconstructed geometry) by performing a triangle reconstruction, an upsampling, and a voxelization process.

[0122] The vertex located at the edge of the block determines a surface passing through the block. The surface according to the embodiments is a non-planar polygon. In the triangle reconstruction process, the surface represented by a triangle is reconstructed based on the origin of the edge, the direction vector of the edge, and the position value of the vertex. The triangle reconstruction process is performed as follows: i) a centroid value of each vertex is calculated, ii) the centroid value is subtracted from each vertex value, and iii) a sum of squares of the values obtained by the subtraction is estimated.

[0123]

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

[0125] Table 2-1. Triangles formed from vertices ordered by 1, …, n

[0126] n triangles

[0127] 3 (1, 2, 3)

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

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

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

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

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

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

[0134] 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)

[0135] 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)

[0136] 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)

[0137] 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 an upsampling factor and a width of the patch. The added points are referred to as refinement vertices. The point cloud encoder according to the embodiment can voxelize the refinement vertices. In addition, the point cloud encoder can perform attribute encoding based on positions (or position values) of the voxelized.

[0138] FIG. 1-6 An example of a neighbor node pattern according to the embodiment is illustrated.

[0139] To increase compression efficiency of a point cloud video, the point cloud encoder according to the embodiment can perform entropy encoding based on context adaptive arithmetic encoding.

[0140] As described with reference to FIG. 4 The point cloud content providing system or the point cloud encoder (e.g., the point cloud video encoder 10002, FIG. 7 can immediately perform entropy encoding on the occupancy code. In addition, the point cloud content providing system or the point cloud encoder can perform entropy encoding (intra encoding) based on occupancy codes of neighbor nodes of the current node or entropy encoding (inter encoding) based on occupancy codes of a previous frame. The frame according to the embodiment represents a set of simultaneously generated point cloud videos. Compression efficiency of the intra / inter encoding according to the embodiment can depend on the number of neighbor nodes referred to. When bits increase, the operation becomes complex, but the encoding can be biased to one side, which can increase compression efficiency. For example, when 3 bits of context are given, 2 3 = 8 methods need to be used to perform encoding. The portion divided for encoding affects implementation complexity. Therefore, it is necessary to satisfy an appropriate level of compression efficiency and complexity.

[0141] FIG. 7 A process of obtaining an occupancy pattern based on occupancy of neighbor nodes is illustrated. The point cloud encoder according to the embodiment determines occupancy of neighbor nodes of each node of an octree and obtains a value of a neighbor pattern. The neighbor node pattern is used to infer an occupancy pattern of a node. FIG. 7 The left part of FIG. 10 illustrates a cube (a cube located in the middle) corresponding to a node and six cubes (neighbor nodes) sharing at least one face with the cube. The node illustrated in the figure is a node of the same depth. The numbers illustrated in the figure respectively represent weights (1, 2, 4, 8, 16, and 32) associated with the six nodes. The weights are sequentially assigned according to positions of the neighbor nodes.

[0142] FIG. 8 The right part of the figure shows the neighbor node pattern value. The neighbor node pattern value is the sum of the values multiplied by the weight of the occupied neighbor node (neighbor node with a dot). Thus, the neighbor node pattern value is 0 to 63. When the neighbor node pattern value is 0, it indicates that there is no node with a dot among the neighbor nodes of the node (no occupied node). When the neighbor node pattern value is 63, it indicates that all neighbor nodes are occupied nodes. As shown in the figure, since the neighbor nodes assigned with the weights 1, 2, 4, and 8 are occupied nodes, the neighbor node pattern value is 15 (sum of 1, 2, 4, and 8). The point cloud encoder can perform encoding according to the neighbor node pattern value (for example, when the neighbor node pattern value is 63, 64 types of encoding can be performed). According to the embodiment, the point cloud encoder can reduce the encoding complexity by changing the neighbor node pattern value (for example, based on a table that changes 64 to 10 or 6).

[0143] FIG. 1-7 An example of point configuration in each LOD according to the embodiment is shown.

[0144] As described with reference to FIG. 9 , the encoded geometry is reconstructed (decompressed) before performing attribute encoding. When direct encoding is applied, the geometry reconstruction operation can include changing the placement of the directly encoded points (for example, placing the directly encoded points in front of the point cloud data). When trisoup geometry encoding is applied, the geometry reconstruction process is performed by triangle reconstruction, upsampling, and voxelization. Since the attribute is dependent on the geometry, the attribute encoding is performed based on the reconstructed geometry.

[0145] The point cloud encoder (for example, the LOD generator 40009) can classify (reorganize) the points by LOD. The point cloud content corresponding to the LOD is shown in the figure. The leftmost picture in the figure indicates the original point cloud content. The second picture from the left in the figure indicates the point distribution in the lowest LOD, and the rightmost picture in the figure indicates the point distribution in the highest LOD. That is, the points are sparsely distributed in the lowest LOD, and the points are densely distributed in the highest LOD. That is, as the LOD increases in the direction indicated by the arrow at the bottom of the figure, the space (or distance) between the points becomes narrower.

[0146] FIG. 1-8 An example of point configuration for each LOD according to the embodiment is shown.

[0147] As described with reference to FIG. 4 , the point cloud content providing system or the point cloud encoder (for example, the point cloud video encoder 10002, FIG. 9The point cloud encoder or the LOD generator 40009) can generate LODs. LODs are generated by reorganizing points into a set of refinement levels according to a set LOD distance value (or a set of Euclidean distances). The LOD generation process is not only performed by the point cloud encoder but also by the point cloud decoder.

[0148] FIG. 9 The upper part of FIG. 4 shows examples of points (P0 to P9) of a point cloud content distributed in a 3D space. In FIG. 4, FIG. 9 In FIG. 4, the original order indicates the order of points P0 to P9 before the LOD generation. In FIG. 4, FIG. 9 In FIG. 4, the LOD-based order indicates the order of points according to the LOD generation. Points are reorganized by LOD. In addition, a high LOD includes points belonging to a lower LOD. As shown in FIG. 4, FIG. 4 LOD 0 includes P0, P5, P4, and P2. LOD1 includes the points of LOD 0, P1, P6, and P3. LOD2 includes the points of LOD 0, the points of LOD1, P9, P8, and P7.

[0149] As described with reference to FIG. 3, FIG. 10 The point cloud encoder according to the embodiment can selectively or in combination perform the predictive transform coding, the lifting transform coding, and the RAHT transform coding.

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

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

[0152] Table. Attribute prediction residual quantization pseudo code

[0153]

[0154] Table. Attribute prediction residual inverse quantization pseudo code

[0155]

[0156]

[0157] When the predictor of each point has a neighboring point, the point cloud encoder (e.g., the arithmetic encoder 40012) according to the embodiment can perform entropy encoding on the quantized and inverse-quantized residual value as described above. When the predictor of each point does not have a neighboring point, the point cloud encoder (e.g., the arithmetic encoder 40012) according to the embodiment can perform entropy encoding on the attribute of the corresponding point without performing the above-described operation.

[0158] The point cloud encoder (e.g., the lifting transformer 40010) according to the embodiment can generate the predictor of each point, set the calculated LOD and register the neighboring points in the predictor, and set the weight according to the distance to the neighboring points to perform the lifting transform encoding. The lifting transform encoding according to the embodiment is similar to the prediction transform encoding described above, but differs in that the weight is applied to the attribute value cumulatively. The process of applying the weight to the attribute value cumulatively according to the embodiment is configured as follows.

[0159] 1) Create an array quantized weight (QW) for storing the weight value of each point. The initial value of all elements of the QW is 1.0. Multiply the QW value of the predictor index of the neighbor node registered in the predictor by the weight of the predictor of the current point, and add the value obtained by the multiplication.

[0160] 2) Lifting prediction process: subtract the value obtained by multiplying the attribute value of the point by the weight from the existing attribute value to calculate the predicted attribute value.

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

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

[0163] 5) Lifting update process: divide the attribute value 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.

[0164] 6) The predicted attribute is computed for all predictors by multiplying the attribute value updated by the lifting update process by the weight (stored in QW) updated by the lifting prediction process. The predicted attribute value is quantized by the point cloud encoder (e.g., the scalar quantizer 40011) according to the embodiments. In addition, the point cloud encoder (e.g., the arithmetic encoder 40012) performs entropy encoding on the quantized attribute value.

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

[0166] The following equation represents the RAHT transform matrix. In the equation, represents the average attribute value of the voxels at level l. The average attribute value of the voxels at level l can be computed based on and and The weight of and

[0167]

[0168] Here, is a low-pass value and is used in the merging process at the next higher level. represents a high-pass coefficient. The high-pass coefficients at each step are quantized and subjected to entropy coding (e.g., encoded by the arithmetic encoder 400012). The weight is computed as The root node is created as follows by and

[0169]

[0170] The value of gDC is also quantized and subjected to entropy coding as the high-pass coefficients.

[0171] FIG. 10 A point cloud decoder according to the embodiments is shown.

[0172] FIG. 1 The point cloud decoder shown is an example of the point cloud video decoder 10006 described in FIG. 1 and can perform the same functions as FIG. 11 ​​The operations of the illustrated point cloud video decoder 10006 are the same or similar operations. As illustrated, the point cloud decoder can receive a geometry bitstream and an attribute bitstream included in one or more bitstreams. The point cloud decoder includes a geometry decoder and an attribute decoder. The geometry decoder performs geometry decoding on the geometry bitstream and outputs decoded geometry. The attribute decoder performs attribute decoding based on the decoded geometry and the attribute bitstream, and outputs decoded attributes. The decoded geometry and the decoded attributes are used to reconstruct the point cloud content (decoded point cloud).

[0173] FIG. 11 A point cloud decoder according to an embodiment is illustrated.

[0174] FIG. 10 The illustrated point cloud decoder is FIG. 1-9 An example of the illustrated point cloud decoder, and can perform decoding operations that are the inverse of the encoding operations of the FIG. 1

[0175] As described with reference to FIG. 10 and FIG. 1-9 The point cloud decoder can perform geometry decoding and attribute decoding. The geometry decoding is performed before the attribute decoding.

[0176] A point cloud decoder according to an embodiment includes an arithmetic decoder (arithmetic decode) 11000, an octree synthesizer (synthesize octree) 11001, a surface approximation synthesizer (synthesize surface approximation) 11002, and a geometry reconstructor (reconstruct geometry) 11003, a coordinate inverse transformer (inverse transform coordinate) 11004, an arithmetic decoder (arithmetic decode) 11005, an inverse quantizer (inverse quantization) 11006, an RAHT transformer 11007, an LOD generator (generate LOD) 11008, an inverse elevator (inverse elevate) 11009, and / or a color inverse transformer (inverse transform color) 11010.

[0177] The arithmetic decoder 11000, the octree synthesizer 11001, the surface approximation synthesizer 11002, the geometry reconstructor 11003, and the coordinate inverse transformer 11004 can perform geometry decoding. The geometry decoding according to an embodiment can include direct encoding and trisoup geometry decoding. The direct encoding and the trisoup geometry decoding are selectively applied. The geometry decoding is not limited to the above-described examples, and as a reference FIG. 1-9 The inverse process of the geometry encoding described is performed.

[0178] The arithmetic decoder 11000 according to an embodiment decodes the received geometry bitstream based on arithmetic encoding. The operation of the arithmetic decoder 11000 corresponds to the inverse process of the arithmetic encoder 40004.

[0179] ​The octree synthesizer 11001 according to the embodiment can generate an octree by acquiring an occupancy code (or information about a geometry acquired as a result of decoding) from a decoded geometry bitstream. The occupancy code is as described with reference to FIG. 1-9 is configured as described in the detailed description.

[0180] The surface approximation synthesizer 11002 according to the embodiment can synthesize a surface based on a decoded geometry and / or a generated octree when trisoup geometry coding is applied.

[0181] The geometry reconstructor 11003 according to the embodiment can regenerate a geometry based on a surface and / or a decoded geometry. As described with reference to FIG. 6 direct coding and trisoup geometry coding are selectively applied. Accordingly, the geometry reconstructor 11003 directly imports position information about points to which direct coding is applied and adds the same. When trisoup geometry coding is applied, the geometry reconstructor 11003 can reconstruct a geometry by performing the reconstruction operation (e.g., triangle reconstruction, upsampling, and voxelization) of the geometry reconstructor 40005. Details are the same as those described with reference to FIG. 10 are described, and thus a description thereof is omitted. The reconstructed geometry can include a point cloud picture or frame that does not include attributes.

[0182] The coordinate inverse transformer 11004 according to the embodiment can acquire a point position by transforming a coordinate based on a reconstructed geometry.

[0183] The arithmetic decoder 11005, the inverse quantizer 11006, the RAHT transformer 11007, the LOD generator 11008, the inverse upscaler 11009, and / or the color inverse transformer 11010 can perform attribute decoding described with reference to FIG. 11 The attribute decoding according to the embodiment includes region adaptive hierarchical transform (RAHT) decoding, interpolation-based hierarchical nearest neighbor prediction (prediction transform) decoding, and interpolation-based hierarchical nearest neighbor prediction with update / upscale steps (upscale transform) decoding. The above three decoding schemes can be selectively used, or a combination of one or more decoding schemes can be used. The attribute decoding according to the embodiment is not limited to the above-described examples.

[0184] The arithmetic decoder 11005 according to the embodiment decodes an attribute bitstream by arithmetic coding.

[0185] The inverse quantizer 11006 according to the embodiment inverse quantizes information about a decoded attribute bitstream or an attribute acquired as a result of decoding, and outputs inverse quantized attributes (or attribute values). The inverse quantization can be selectively applied based on attribute encoding of the point cloud encoder.

[0186] According to the implementation, the RAHT transformer 11007, LOD generator 11008, and / or inverse lifter 11009 can handle the reconstructed geometry and inverse quantization attributes. As described above, the RAHT transformer 11007, LOD generator 11008, and / or inverse lifter 11009 can selectively perform decoding operations corresponding to the encoding of the point cloud encoder.

[0187] According to the implementation, the color inverse transformer 11010 performs inverse transformation encoding to inversely transform the color values ​​(or textures) included in the decoded attributes. The operation of the color inverse transformer 11010 can be selectively performed based on the operation of the color transformer 40006 of the point cloud encoder.

[0188] Although not shown in the figure, FIG. 11 The elements of the point cloud decoder can 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. One or more processors can perform the above-described... FIG. 11 The point cloud decoder's components include at least one or more operations and / or functions. Additionally, one or more processors are operable or perform operations for executing... FIG. 12 The software program and / or instruction set for the operation and / or function of the elements of the point cloud decoder.

[0189] FIG. 12 A transmitting device according to an embodiment is shown.

[0190] FIG. 1 The transmitting device shown is FIG. 4 The transmitting device 10000 (or FIG. 12 Example of a point cloud encoder. FIG. 1-9 The transmitting device shown can perform and reference FIG. 2 The described point cloud encoder includes one or more of the same or similar operations and methods. The transmitting apparatus according to the embodiment may include a data input unit 12000, a quantization processor 12001, a voxelization processor 12002, an octree occupancy code generator 12003, a surface model processor 12004, an intra / inter-frame coding processor 12005, an arithmetic encoder 12006, a metadata processor 12007, a color transformation processor 12008, an attribute transformation processor 12009, a prediction / boosting / RAHT transformation processor 12010, an arithmetic encoder 12011, and / or a transmission processor 12012.

[0191] According to the embodiment, the data input unit 12000 receives or acquires point cloud data. The data input unit 12000 can perform operations and / or acquisition methods similar to those of the point cloud video acquirer 10001 (or refer to...). FIG. 1-9The described acquisition process 20000) the same or similar operations and / or acquisition methods.

[0192] The data input unit 12000, the quantization processor 12001, the voxelization processor 12002, the octree occupancy code generator 12003, the surface model processor 12004, the intra / inter-frame encoding processor 12005, and the arithmetic encoder 12006 perform geometry encoding. The geometry encoding according to the embodiments is the same or similar to that described with reference to FIG. 4 The described geometry encoding is the same or similar, and thus a detailed description thereof is omitted.

[0193] The quantization processor 12001 according to the embodiments quantizes geometry (e.g., position values of points). The operation and / or quantization of the quantization processor 12001 can be the same or similar to that described with reference to FIG. 1-9 The described operation and / or quantization of the quantizer 40001 are the same or similar. Details are described with reference to FIG. 4 The described are the same.

[0194] The voxelization processor 12002 according to the embodiments voxelizes quantized position values of points. The voxelization processor 120002 can perform the same or similar operations and / or processes as described with reference to FIG. 1-9 The described operation and / or voxelization process of the quantizer 40001 are the same or similar. Details are described with reference to FIG. 4 The described are the same.

[0195] The octree occupancy code generator 12003 according to the embodiments performs octree encoding on voxelized positions of points based on an octree structure. The octree occupancy code generator 12003 can generate occupancy codes. The octree occupancy code generator 12003 can perform the same or similar operations and / or processes as described with reference to FIG. 6 and FIG. 1-9 The described operation and / or method of the point cloud encoder (or octree analyzer 40002) are the same or similar. Details are described with reference to FIG. 4 The described are the same.

[0196] The surface model processor 12004 according to the embodiments can perform trisoup geometry encoding based on a surface model to reconstruct point positions in a certain region (or node) based on voxels. The surface model processor 12004 can perform the same or similar operations and / or processes as described with reference to FIG. 1-9 The described operation and / or method of the point cloud encoder (e.g., surface approximation analyzer 40003) are the same or similar. Details are described with reference to FIG. 7 The described are the same.

[0197] The intra / inter-frame encoding processor 12005 according to the embodiments can perform intra / inter-frame encoding on point cloud data. The intra / inter-frame encoding processor 12005 can perform the same or similar operations and / or processes as described with reference to FIG. 7The described intra / inter-frame coding is the same or similar. Details and references. FIG. 1-9 The descriptions are the same. According to an implementation, the intra / inter-frame coding processor 12005 may be included in the arithmetic encoder 12006.

[0198] The arithmetic encoder 12006 according to the embodiment performs entropy encoding on octrees and / or approximate octrees of point cloud data. For example, the encoding scheme includes arithmetic encoding. The arithmetic encoder 12006 performs the same or similar operations and / or methods as the arithmetic encoder 40004.

[0199] The metadata processor 12007 according to an embodiment processes metadata (e.g., set values) about point cloud data and provides it to necessary processing procedures such as geometric encoding and / or attribute encoding. Additionally, the metadata processor 12007 according to an embodiment can generate and / or process signaling information related to geometric encoding and / or attribute encoding. The signaling information according to an embodiment can be encoded separately from the geometric encoding and / or attribute encoding. The signaling information according to an embodiment can be interleaved.

[0200] Color transformation processor 12008, attribute transformation processor 12009, prediction / boosting / RAHT transformation processor 12010, and arithmetic encoder 12011 perform attribute encoding. Attribute encoding and reference according to the implementation method. FIG. 1-9 The attribute codes described are the same or similar, so their detailed descriptions are omitted.

[0201] According to the embodiment, the color transformation processor 12008 performs color transformation encoding to transform color values ​​included in attributes. The color transformation processor 12008 can perform color transformation encoding based on reconstructed geometry. Reconstructed geometry and reference... FIG. 4 The description is the same. Furthermore, its execution is the same as the reference. FIG. 4 The operation and / or methods of the described color converter 40006 are the same as or similar to those described. Detailed descriptions are omitted.

[0202] According to the implementation, the attribute transformation processor 12009 performs attribute transformation to transform attributes based on reconstructed geometry and / or locations where geometric encoding is not performed. The attribute transformation processor 12009 performs and references... FIG. 4 The operation and / or method of the described attribute transformer 40007 are the same as or similar to those described. Detailed descriptions are omitted. The prediction / boosting / RAHT transformation processor 12010 according to the embodiment can encode the transformed attributes using any one or a combination of RAHT encoding, prediction transformation encoding, and boosting transformation encoding. The prediction / boosting / RAHT transformation processor 12010 performs and references... FIG. 1-9The described RAHT transformer 40008, LOD generator 40009, and lifting transformer 40010 perform the same or similar operations. In addition, the prediction transform encoding, the lifting transform encoding, and the RAHT transform encoding are described with reference to FIG. 1 Those described are the same, and thus a detailed description thereof is omitted.

[0203] The arithmetic encoder 12011 according to the embodiment can encode the encoded attribute based on arithmetic encoding. The arithmetic encoder 12011 performs the same or similar operations and / or methods as those of the arithmetic encoder 400012.

[0204] The transmission processor 12012 according to the embodiment can transmit individual bitstreams including the encoded geometry and / or the encoded attribute and the metadata information, or transmit one bitstream configured with the encoded geometry and / or the encoded attribute and the metadata information. When the encoded geometry and / or the encoded attribute and the metadata information according to the embodiment are configured into one bitstream, the bitstream can include one or more sub-bitstreams. The bitstream according to the embodiment can include signaling information including a sequence parameter set (SPS) for sequence level signaling, a geometry parameter set (GPS) for geometry information encoding signaling, an attribute parameter set (APS) for attribute information encoding signaling, and a tile parameter set (TPS) for tile level signaling, and slice data. The slice data can include information about one or more slices. One slice according to the embodiment can include one geometry bitstream Geom00 and one or more attribute bitstreams Attr0 0 and Attr1 0 .

[0205] A slice refers to a series of syntax elements representing all or part of an encoded point cloud frame.

[0206] The TPS according to the embodiments can include information on each tile among one or more tiles (e.g., coordinate information on a bounding box and height / size information). The geometry bitstream can include a header and a payload. The header of the geometry bitstream according to the embodiments can 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, and information on data included in the payload. As described above, the metadata processor 12007 according to the embodiments can generate and / or process signaling information and transmit the same to the transmission processor 12012. According to the embodiments, the elements performing geometry encoding and the elements performing attribute encoding can share data / information with each other as indicated by dotted lines. The transmission processor 12012 according to the embodiments can perform the same or similar operations and / or transmission methods as those of the transmitter 10003 and / or the transmission method. Details are the same as those described with reference to FIG. 2 and FIG. 13 described are the same, and thus a description thereof is omitted.

[0207] FIG. 13 A receiving apparatus according to an embodiment is illustrated.

[0208] FIG. 1 The illustrated receiving apparatus is an example of a receiving apparatus 10004 (or FIG. 10 a point cloud decoder) of FIG. 11 and FIG. 13 described are the same, and thus a description thereof is omitted. FIG. 1-11 The illustrated receiving apparatus can perform one or more operations and methods the same as or similar to those of the point cloud decoder described with reference to FIG. 1 described are the same, and thus a description thereof is omitted.

[0209] The receiving apparatus according to the embodiments includes a receiver 13000, a reception processor 13001, an arithmetic decoder 13002, an occupancy code-based octree reconstruction processor 13003, a surface model processor (triangle reconstruction, upsampling, voxelization) 13004, an inverse quantization processor 13005, a metadata parser 13006, an arithmetic decoder 13007, an inverse quantization processor 13008, a prediction / lifting / RAHT inverse transform processor 13009, a color inverse transform processor 13010, and / or a renderer 13011. Each decoding element according to the embodiments can perform inverse processing of the operation of the corresponding encoding element according to the embodiments.

[0210] The receiver 13000 according to the embodiments receives point cloud data. The receiver 13000 can perform the same or similar operations and / or reception methods as those of the receiver 10005 of FIG. 1-10 described are the same, and thus a description thereof is omitted.

[0211] The reception processor 13001 according to the embodiment can acquire a geometry bitstream and / or an attribute bitstream from the received data. The reception processor 13001 can be included in the receiver 13000.

[0212] The arithmetic decoder 13002, the occupancy code-based octree reconstruction processor 13003, the surface model processor 13004, and the inverse quantization processor 13005 can perform geometry decoding. The geometry decoding according to the embodiment is the same as or similar to that described with reference to FIG. 12 The geometry decoding described is the same as or similar to that described, and thus a detailed description thereof is omitted.

[0213] The arithmetic decoder 13002 according to the embodiment can decode the geometry bitstream based on arithmetic encoding. The arithmetic decoder 13002 performs the same or similar operation and / or encoding as that of the arithmetic decoder 11000.

[0214] The occupancy code-based octree reconstruction processor 13003 according to the embodiment can reconstruct an octree by acquiring an occupancy code from the decoded geometry bitstream (or information on the geometry acquired as a result of decoding). The occupancy code-based octree reconstruction processor 13003 performs the same or similar operation and / or method as that of the synthesizer 11001 of the octree and / or the octree generation method. When the trisoup geometry encoding is applied, the surface model processor 13004 according to the embodiment can perform trisoup geometry decoding and related geometry reconstruction (e.g., triangle reconstruction, upsampling, voxelization) based on a surface model method. The surface model processor 13004 performs the same or similar operation as that of the surface approximation synthesizer 11002 and / or the geometry reconstructor 11003.

[0215] The inverse quantization processor 13005 according to the embodiment can inverse quantize the decoded geometry.

[0216] The metadata parser 13006 according to the embodiment can parse metadata (e.g., setting values) included in the received point cloud data. The metadata parser 13006 can pass the metadata to the geometry decoding and / or the attribute decoding. The metadata is the same as or similar to that described with reference to FIG. 1-10 The metadata described is the same as or similar to that described, and thus a detailed description thereof is omitted.

[0217] The arithmetic decoder 13007, the inverse quantization processor 13008, the prediction / lifting / RAHT inverse transform processor 13009, and the color inverse transform processor 13010 perform attribute decoding. The attribute decoding is the same as or similar to that described with reference to FIG. 14 The attribute decoding described is the same as or similar to that described, and thus a detailed description thereof is omitted.

[0218] The arithmetic decoder 13007 according to the embodiments can decode the attribute bitstream by arithmetic encoding. The arithmetic decoder 13007 can decode the attribute bitstream based on the reconstructed geometry. The arithmetic decoder 13007 performs the same or similar operations and / or encoding as those of the arithmetic decoder 11005.

[0219] The inverse quantization processor 13008 according to the embodiments can inverse quantize the decoded attribute bitstream. The inverse quantization processor 13008 performs the same or similar operations and / or method as those of the inverse quantizer 11006.

[0220] The prediction / lifting / RAHT inverse transformer 13009 according to the embodiments can process the reconstructed geometry and the inverse quantized attribute. The prediction / lifting / RAHT inverse transformer 13009 performs the same or similar operation and / or decoding as those of the RAHT transformer 11007, the LOD generator 11008, and / or the inverse lifter 11009. The color inverse transform processor 13010 according to the embodiments performs inverse transform encoding to inverse transform color values (or texture) included in the decoded attribute. The color inverse transform processor 13010 performs the same or similar operation and / or inverse transform encoding as those of the color inverse transformer 11010. The Tenderer 13011 according to the embodiments can render the point cloud data.

[0221] FIG. 14 An exemplary structure operable in connection with the point cloud data transmission / reception method / apparatus according to the embodiments is illustrated.

[0222] FIG. 14 The structure of the cloud network 1400 represents a configuration in which at least one of a server 1460, a robot 1410, a self-driving vehicle 1420, an XR device 1430, a smart phone 1440, a home appliance 1450, and / or a head-mounted display (HMD) 1470 is connected to the cloud network 1400. The robot 1410, the self-driving vehicle 1420, the XR device 1430, the smart phone 1440, or the home appliance 1450 is referred to as a device. Also, the XR device 1430 can correspond to a point cloud data (PCC) device according to the embodiments or be operatively connected to the PCC device.

[0223] The cloud network 1400 can represent a network constituting a part of or existing in a cloud computing infrastructure. Here, the cloud network 1400 can be configured using a 3G network, a 4G or long term evolution (LTE) network, or a 5G network.

[0224] The server 1460 can be connected to at least one of the robot 1410, the self-driving vehicle 1420, the XR device 1430, the smart phone 1440, the home appliance 1450, and / or the HMD 1470 via the cloud network 1400, and can assist at least part of the connected devices 1410 to 1470 in processing.

[0225] The HMD 1470 represents one of implementation types of the XR device and / or the 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.

[0226] Hereinafter, various embodiments of the devices 1410 to 1450 to which the above-described technology is applied will be described. <PCC+XR> The illustrated devices 1410 to 1450 can be operatively connected / coupled to the point cloud data transmission and reception device according to the above-described embodiments.

[0227] <PCC+XR+mobile phone>

[0228] The XR / PCC device 1430 can employ a PCC technology and / or an XR (AR+VR) technology, and can 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 stationary robot, or a mobile robot.

[0229] The XR / PCC device 1430 can analyze 3D point cloud data or image data acquired through various sensors or from external devices and generate position data and attribute data regarding 3D points. Thereby, the XR / PCC device 1430 can acquire information regarding a surrounding space or a real object, and render and output an XR object. For example, the XR / PCC device 1430 can match an XR object including auxiliary information regarding an identified object with the identified object and output the matched XR object.

[0230] <PCC+self-driving+XR>

[0231] The XR / PCC device 1430 can be implemented as a mobile phone 1440 by applying a PCC technology.

[0232] The mobile phone 1440 can decode and display point cloud content based on a PCC technology.

[0233] FIG. 15

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

[0235] The self-driving vehicle 1420 to which the XR / PCC technology is applied can mean a self-driving vehicle provided with a means for providing an XR image, or a self-driving vehicle that is a control / interaction target in an XR image. Specifically, as a control / interaction target in an XR image, the self-driving vehicle 1420 can be distinguished from and operatively connected to the XR device 1430.

[0236] The self-driving vehicle 1420 having a means for providing an XR / PCC image can acquire sensor information from a sensor including a camera, and output a generated XR / PCC image based on the acquired sensor information. For example, the self-driving vehicle 1420 can have a HUD and output an XR / PCC image thereto, thereby providing a passenger with an XR / PCC object corresponding to a real object or an object presented on a screen.

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

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

[0239] In other words, the VR technology is a display technology that provides only a CG image of a real world object, background, etc. On the other hand, the AR technology refers to a technology that displays a CG image created virtually on an image of a real object. The MR technology is similar to the above-described AR technology in that a virtual object to be displayed is mixed and combined with the real world. However, the MR technology is different from the AR technology in that the AR technology clearly distinguishes between a real object and a virtual object created as a CG image and uses the virtual object as a complementary object of the real object, whereas the MR technology treats the virtual object as an object having equivalent characteristics to the real object. More specifically, an example to which the MR technology is applied is a hologram service.

[0240] Recently, the VR, AR, and MR technologies are generally referred to as extended display (XR) technology rather than being clearly distinguished from each other. Accordingly, embodiments of the disclosure are applicable to any one of the VR, AR, MR, and XR technologies. Encoding / decoding based on PCC, V-PCC, and G-PCC technologies is applicable to such technologies.

[0241] The PCC method / apparatus according to the embodiments can be applied to a vehicle providing a self-driving service.

[0242] The vehicle providing the self-driving service is connected to the PCC apparatus to perform wired / wireless communication.

[0243] When the point cloud data (PCC) transmission / reception apparatus according to the embodiments is connected to the vehicle to perform wired / wireless communication, the apparatus can receive / process content data related to an AR / VR / PCC service (which can be provided together with the self-driving service) and transmit the same to the vehicle. In the case where the PCC transmission / reception apparatus is mounted on the vehicle, the PCC transmission / reception apparatus can receive / process content data related to the AR / VR / PCC service according to a user input signal input through a user interface apparatus and provide the same to the user. The vehicle or the user interface apparatus according to the embodiments can receive the user input signal. The user input signal according to the embodiments can include a signal indicating the self-driving service.

[0244] FIG. 15 is a flowchart illustrating an operation of a point cloud data transmission apparatus according to an embodiment.

[0245] FIG. 1-14 The flowchart 1500 of FIG. 1 illustrates an example of an operation of a point cloud transmission apparatus (or a point cloud data transmission apparatus) that performs projection in order to improve compression efficiency of attribute encoding. The projection according to the embodiments is applied to geometry in a preprocessing process of attribute encoding. Point cloud data (e.g., lidar data, etc.) acquired in a certain mode has a different data distribution density according to the acquisition mode. As described with reference to FIG. 1-14 , attribute encoding is performed based on geometry encoding. When attributes are encoded based on non-uniformly distributed geometry, attribute compression efficiency can be reduced. Accordingly, the projection according to the embodiments is applied to point cloud data, which can improve attribute compression efficiency through a change in position. Projection refers to a transformation of a coordinate system (e.g., a Cartesian coordinate system consisting of an x-axis, a y-axis, and a z-axis) representing the position (geometry) of each point, and a transformation of the transformed coordinate system into a coordinate system representing a form (e.g., a space in the form of a square column) that is compressible. Projection can be referred to as coordinate transformation.

[0246] As described with reference to FIG. 1 , the point cloud transmission apparatus (e.g., FIG. 4 the transmission apparatus of FIG. 1, FIG. 12 the point cloud encoder of FIG. 1, and FIG. 4 the transmission apparatus of FIG. 1) performs compilation (geometry compilation) on geometry (1510). The geometry compilation according to the embodiments corresponds to reference FIG. 12The combination of at least one of the described operations of the coordinate transformer 40000, quantization 40001, octree analyzer 40002, surface approximation analyzer 40003, arithmetic encoder 40004, and geometry reconstructor (reconstruct geometry) 40005 is described, and is not limited to the above examples. In addition, the geometry encoding according to the embodiments corresponds to the reference FIG. 4 The combination of at least one of the described operations of the data input unit 12000, quantization processor 12001, voxelization processor 12002, octree occupancy code generator 12003, surface model processor 12004, intra / interframe encoding processor 12005, arithmetic encoder 12006, and metadata processor 12007 is described, and is not limited to the above examples. The geometry encoding can be referred to as geometry coding.

[0247] When performing lossy encoding, the point cloud transmission apparatus according to the embodiments decodes the encoded geometry and performs re-coloring (attribute transfer) (1520). The point cloud transmission apparatus can minimize attribute distortion by matching the reconstructed geometry with the attributes. The point cloud transmission apparatus can determine whether to perform projection on the reconstructed geometry (1530) and perform projection (1540).

[0248] The point cloud transmission apparatus according to the embodiments performs attribute encoding based on the projected geometry (1550). The attribute encoding according to the embodiments corresponds to the reference FIG. 12 The combination of at least one of the described operations of the color transformer 40006, attribute transformer 40007, RAHT transformer 40008, LOD generator 40009, lifting transformer 40010, coefficient quantizer 40011, and / or arithmetic encoder 40012 is described, and is not limited to the above examples. In addition, the attribute encoding according to the embodiments corresponds to the reference FIG. 1-14 The combination of at least one of the described operations of the color transform processor 12008, attribute transform processor 12009, prediction / lifting / RAHT transform processor 12010, and arithmetic encoder 12011 is described, and is not limited to the above examples. The attribute encoding can be referred to as attribute coding. The point cloud transmission apparatus performs attribute encoding and outputs an attribute bitstream.

[0249] The geometry encoding and attribute encoding according to the embodiments correspond to the reference FIG. 16 The same as described, and thus a detailed description thereof will be omitted.

[0250] FIG. 16 An example of the operation of the point cloud data transmission apparatus is shown.

[0251] FIG. 15 The flowchart 1600 of FIG. 16 shows FIG. 15the details of the operation of the point cloud data transmitting apparatus (or point cloud transmitting apparatus) of the flowchart 1500. The flowchart 1600 shows an example of the operation of the point cloud transmitting apparatus. Thus, the data processing sequence of the point cloud transmitting apparatus is not limited to this example. In addition, the operations represented by the elements of the flowchart 1600 according to the embodiments can be performed by hardware, software, and / or processes constituting the point cloud transmitting apparatus, or a combination thereof.

[0252] The point cloud transmitting apparatus performs geometry compilation (for example, refer to FIG. 4 described geometry compilation 1510) on the geometry data and outputs a geometry bitstream. The geometry compilation according to the embodiments can include geometry encoding 1610, geometry quantization 1611, and entropy compilation 1612. The geometry encoding 1610 according to the embodiments can include at least one of octree geometry encoding, trisoup geometry encoding, or predictive geometry compilation, but is not limited thereto. The geometry encoding is the same as described with reference to FIG. 15 , and thus the description thereof will be omitted.

[0253] The point cloud transmitting apparatus performs projection preprocessing (for example, refer to FIG. 15 described projection) based on the reconstructed geometry data (1620). The point cloud transmitting apparatus can perform the projection preprocessing and output projected geometry and attributes. The projection preprocessing 1620 according to the embodiments can include dequantization and decoding 1630 for the reconstructed geometry, re-shading 1631 for matching the decoded geometry and attributes, and projection 1632.

[0254] The point cloud transmitting apparatus according to the embodiments performs inverse quantization and decoding (1630) on the reconstructed geometry. The point cloud transmitting apparatus performs re-shading to match the decoded geometry and attribute data (1631). The point cloud transmitting apparatus performs projection (1632) on the re-shaded point cloud data (for example, geometry and attributes).

[0255] The projection 1632 according to the embodiments can include at least one of a coordinate transformation 1640, a coordinate projection 1641, a laser position adjustment 1642, a sampling rate adjustment 1643, or a projection domain voxelization 1644. The positions of the points of the geometry are represented, and the positions of the respective points are represented with a coordinate system (e.g., a 2 / 3-dimensional Cartesian coordinate system, a 2 / 3-dimensional cylindrical coordinate system, a spherical coordinate system, etc.). In order to represent the positions of the respective points indicated by the input geometry as positions in a 3D space, the point cloud transmission device according to the embodiments selects a coordinate system and performs a coordinate transformation 1640 that transforms the geometry into information (e.g., vector values) in the selected coordinate system. For example, the point cloud transmission device can perform a coordinate transformation including a Cartesian-cylindrical coordinate transformation that transforms a Cartesian coordinate system into a cylindrical coordinate system, and a Cartesian-spherical coordinate transformation that transforms a Cartesian coordinate system into a spherical coordinate system. The coordinate system and the coordinate transformation according to the embodiments are not limited to the above-described examples. The point cloud transmission device according to the embodiments performs a coordinate projection 1641 that projects the geometry represented in the transformed coordinate system into a compressible form (e.g., a cuboid space).

[0256] The point cloud transmission device performs a laser position adjustment 1642 and / or a sampling rate adjustment 1643 to correct the projection in order to improve the accuracy of the projection. The laser position adjustment 1642 and the sampling rate adjustment 1643 are projection correction processes, can be selectively performed according to the characteristics of the point cloud data and the characteristics of the point cloud data acquisition device, can be simultaneously performed, can be sequentially performed all at once, or can be skipped all at once. As described above, the accuracy of the projection can decrease according to the density of the point cloud data (e.g., lidar data, etc.) acquired in a predetermined pattern at the time of performing the projection. The point cloud transmission device performs a laser position adjustment 1642 to correct the point cloud data of the projection (e.g., the projected geometry) in consideration of the position of the point cloud data acquisition device (e.g., a laser). The point cloud transmission device performs a sampling rate adjustment 1643 to correct the point cloud data of the projection (e.g., the projected geometry) by applying a scaling factor based on the mechanical characteristics of the point cloud data acquisition device.

[0257] The point cloud transmission device performs a voxelization 1644 that transforms the projected geometry into a domain effective for compression. The projected geometry is transformed into position information of an integer unit by the voxelization 1644 for compression.

[0258] The point cloud transmission device performs attribute compilation based on the projected geometry (e.g., refer to FIG. 17B). FIG. 17The described attribute compilation (1550) outputs an attribute bitstream. Attribute compilation according to the implementation includes attribute encoding (1621), attribute quantization (1622), and entropy compilation (1623). Attribute compilation can be referred to as attribute encoding. Attribute encoding (1621) according to the implementation corresponds to at least one of RAHT encoding, predictive transform compilation, or boosting transform compilation, or a combination of one or more encoding schemes based on the point cloud content. For example, RAHT compilation and boosting transform compilation can be used for lossy compilation, which compresses the point cloud content data to a significant degree. Predictive transform compilation can be used for lossless compilation.

[0259] As shown in the figure, the output geometric bitstream and attribute bitstream are multiplexed and transmitted.

[0260] FIG. 15-16 An example of the processing procedure of a point cloud transmitting device is shown.

[0261] Flowchart 1700 in the figure shows a reference. FIG. 17 This describes an example of the processing procedure of a point cloud transmitting device. The operation of the point cloud transmitting device is not limited to this example and can be performed according to... FIG. 15 The operations corresponding to the respective components can be executed in sequence, or they can be executed out of sequence.

[0262] For reference FIG. 16 and FIG. 15 As described, the point cloud transmitting device receives point cloud data and performs geometric encoding (1710) on the geometry. Geometric encoding 1710 is related to the reference... FIG. 16 The described geometry compilation 1510 and references FIG. 16 The described geometry compilation, FIG. 15 The geometric encoding 1610, geometric quantization 1611, and entropy compilation 1612 are the same, so their detailed descriptions will be omitted. The point cloud transmitting device performs geometric decoding 1720 and recoloring 1725. Because decoding 1720 and recoloring 1725 are the same as... FIG. 16 Geometry Decoding / Recoloring 1520 and FIG. 16 The inverse quantization and decoding 1630 and recoloring 1631 are the same, therefore their detailed description will be omitted. The point cloud transmitting apparatus according to the embodiment performs projection on the recoloring geometric data. The projection according to the embodiment includes coordinate transformation 1730, coordinate projection 1731, laser position adjustment 1733, sampling rate adjustment 1733, and projection domain voxelization 1734. The point cloud transmitting apparatus performs coordinate transformation 1730. The coordinate transformation 1730 according to the embodiment is related to the reference... FIG. 16 The projection 1632 and coordinate transformation 1640 described are the same, therefore their detailed description will be omitted. The point cloud transmitting device performs coordinate projection 1731. The coordinate projection 1731 according to the embodiment is the same as the reference. FIG. 16The projection 1632 described is identical, therefore its detailed description will be omitted. To correct the projection, the point cloud transmitting device may sequentially or selectively perform laser position adjustment 1732, sampling rate adjustment 1733, and projection domain voxelization 1734. Laser position adjustment 1732, sampling rate adjustment 1733, and projection domain voxelization 1734 are the same as the reference... FIG. 15 The laser position adjustment 1642, sampling rate adjustment 1643, and voxelization 1644 are described as being the same, so their detailed descriptions will be omitted.

[0263] The point cloud transmitting device according to the implementation method performs attribute compilation 1740 and entropy compilation 1745. Attribute compilation 1740 and entropy compilation 1745 are related to the reference... FIG. 16 The described attributes are compiled in version 1550 and referenced. FIG. 18 The properties described are compiled the same (e.g., property encoding 1621 and entropy compilation 1623), so their detailed descriptions will be omitted.

[0264] FIG. 15-18 An example of coordinate transformation is shown.

[0265] For reference FIG. 4 As described, the point cloud transmitting device performs coordinate transformations (e.g., coordinate transformation 1641, coordinate transformation 1730, etc.). Geometry is information indicating, for example, the position of points in the point cloud. (See reference...) FIG. 1 The described geometric information can be represented as values ​​in a two-dimensional coordinate system (e.g., parameters (x, y) of Cartesian coordinates consisting of the x and y axes, or parameters (r, θ) of cylindrical coordinates), or values ​​in a three-dimensional coordinate system (e.g., parameters (x, y, z) of orthogonal coordinates, parameters (r, θ, z) of cylindrical coordinates, or parameters (ρ, θ, z) of spherical coordinates). (etc.). However, depending on the type of point cloud data and / or coordinate system, the geometrically indicated position of points can be represented as having irregular positions or distributions. For example, in lidar data represented in a Cartesian coordinate system, the geometric indication of the distance between points far from the origin increases. For example, in the case of geometry represented in a cylindrical coordinate system, even for points far from the origin, a uniform distribution can be represented. However, for points close to the origin, the distance between points increases, and therefore a uniform distribution may not be represented. Since representing the irregular positions and distributions of points requires a large amount of information (i.e., geometry), it may lead to a decrease in geometry compilation efficiency. Therefore, the point cloud encoder according to the implementation (e.g., reference) FIG. 4 , FIG. 11 , FIG. 14 , FIG. 15 and FIG. 18 The described point cloud encoder can sequentially transform some and / or all coordinates of the geometry in order to improve the efficiency of geometry compilation.

[0266] FIG. 19 Examples of coordinate systems that can be converted to each other are shown, that is, a three-dimensional orthogonal coordinate system 1800, a cylindrical coordinate system 1810, and a spherical coordinate system 1820. The coordinate system according to the embodiment is not limited to the examples shown.

[0267] The three-dimensional orthogonal coordinate system 1800 and the cylindrical coordinate system 1810 according to the embodiment can be converted to each other.

[0268] The three-dimensional orthogonal coordinate system 1800 can be composed of an X-axis, a Y-axis, and a Z-axis that are orthogonal to each other at an origin. A point (or a parameter) on the three-dimensional orthogonal coordinate system can be expressed as (x, y, z). An XY plane formed by the X-axis and the Y-axis, a YZ plane formed by the Y-axis and the Z-axis, and an XZ plane formed by the X-axis and the Z-axis can intersect at the origin orthogonally to each other. The terms X-axis, Y-axis, and Z-axis are used only to distinguish the respective axes, and can be replaced with other terms.

[0269] The cylindrical coordinate system 1810 can be composed of an X-axis, a Y-axis, and a Z-axis that are orthogonal to each other at an origin. A point (or a parameter) P on the cylindrical coordinate system 1810 can be expressed as (r, θ, z). Here, r represents a distance between the origin and a point obtained by orthogonally projecting the point P in the XY plane in the coordinate space. θ represents an angle between a positive direction of the X-axis and a straight line connecting the origin with a point obtained by orthogonally projecting the point P on the XY plane. z represents a distance between the point P and a point obtained by orthogonally projecting the point P on the XY plane. The terms X-axis, Y-axis, and Z-axis are used only to distinguish the respective axes, and can be replaced with other terms.

[0270] The formula 1811 shown in the drawing represents a formula for expressing geometric information expressed in orthogonal coordinates as a cylindrical coordinate system when the orthogonal coordinates are converted to the cylindrical coordinates according to a rectangular-cylindrical coordinate conversion. That is, the formula 1811 indicates that a parameter of the cylindrical coordinate system can be expressed with one or more parameters of the orthogonal coordinate system according to the coordinate conversion (for example, x = r cos θ). ).

[0271] The formula 1812 shown in the drawing represents a formula for expressing geometric information expressed in cylindrical coordinates as an orthogonal coordinate system when the cylindrical coordinates are converted to the orthogonal coordinates according to a cylindrical-rectangular coordinate conversion. That is, the formula 1812 indicates that a parameter of the orthogonal coordinate system can be expressed with one or more parameters of the cylindrical coordinate system according to the coordinate conversion (for example, x = r cos θ).

[0272] The three-dimensional orthogonal coordinate system 1800 and the spherical coordinate system 1820 according to the embodiment can be converted to each other.

[0273] The spherical coordinate system 1820 according to the embodiment can be composed of an X-axis, a Y-axis, and a Z-axis that are orthogonal to each other at an origin. A point (or a parameter) P on the spherical coordinate system can be expressed as (p, θ, φ). Here, p represents a distance between the origin and a point obtained by orthogonally projecting the point P in the XY plane in the coordinate space. θ represents an angle between a positive direction of the X-axis and a straight line connecting the origin with a point obtained by orthogonally projecting the point P on the XY plane. φ represents an angle between a positive direction of the Y-axis and a straight line connecting the origin with a point obtained by orthogonally projecting the point P on the XY plane. The terms X-axis, Y-axis, and Z-axis are used only to distinguish the respective axes, and can be replaced with other terms. θ). Here, p denotes a distance from the origin O to the point P, and has a value greater than or equal to 0 (p ≥ 0). denotes an angle between the positive direction of the Z-axis and a straight line from the origin to the point P, and has a value within a certain range (0 ≤ φ ≤ π). ) denotes an angle between a straight line from the origin to a point obtained by orthogonally projecting the point P on the XY plane and the positive direction of the X-axis, and has a value within a certain range (0 ≤ θ ≤ 2π). The terms X-axis, Y-axis, and Z-axis are used only to distinguish the respective axes, and can be replaced with other terms.

[0274] The formula 1821 shown in the figure indicates a formula for expressing geometric information expressed in orthogonal coordinates as a spherical coordinate system when orthogonal coordinates are converted into spherical coordinates according to the orthogonal-spherical coordinate conversion. That is, the formula 1821 indicates that parameters of the spherical coordinate system can be expressed with one or more parameters of the orthogonal coordinate system according to the coordinate conversion (for example, x = p sin φ cos θ, y = p sin φ sin θ, and z = p cos φ).

[0275] The formula 1822 shown in the figure indicates a formula for expressing geometric information expressed in spherical coordinates as an orthogonal coordinate system when spherical coordinates are converted into orthogonal coordinates according to the spherical-orthogonal coordinate conversion. That is, the formula 1822 indicates that parameters of the orthogonal coordinate system can be expressed with one or more parameters of the spherical coordinate system according to the coordinate conversion (for example, z = p sin θ).

[0276] FIG. 19 An example of a coordinate system is shown.

[0277] FIG. 19 An example of a coordinate system of lidar data considering the arrangement of laser modules is shown. FIG. 20 ​The leftmost portion of FIG. 19 shows a lidar head 1900 that collects lidar (light detection and ranging or light imaging, detection, and ranging) data. The lidar data is obtained by a lidar technique that measures a distance by emitting a laser light to an object. The lidar head 1900 includes one or more laser modules (or laser sensors) arranged at an angle in a vertical plane and rotated around a vertical axis. The time (and / or the wavelength) for a laser ray output from a corresponding laser module to be reflected from an object and returned can be equal to or different from each other. Accordingly, the lidar data is a 3D representation constructed based on the difference in the return time and / or the difference in the wavelength between the laser rays from the object. To have a wider coverage, the laser modules are arranged to output the laser light radially. Accordingly, the coordinate system according to the embodiment has a sector plane corresponding to the form in which the laser modules output the laser light, and includes a sector cylindrical coordinate system 1910 obtained by rotating the plane 360 degrees around the cylindrical coordinate system axis and an arc spherical coordinate system 1920 obtained by rotating 360 degrees as part of the combination of the cylindrical coordinate system and the spherical coordinate system around the spherical coordinate system axis. When the vertical direction of the cylindrical coordinate system is expressed as elevation, the sector cylindrical coordinate system 1910 according to the embodiment has a certain range. In addition, when the vertical direction of the spherical coordinate system is expressed as elevation, the arc spherical coordinate system 1920 according to the embodiment has a certain range.

[0278] FIG. 15-18 An example of coordinate transformation is illustrated.

[0279] As described with reference to FIG. 20 , a point cloud transmission device performs coordinate transformation (e.g., coordinate transformation 1641, coordinate transformation 1730, etc.). FIG. 18 Coordinate transformation is illustrated, in which an orthogonal coordinate system 2000 (e.g., the orthogonal coordinate system 1800 described with reference to FIG. 19 is transformed into a sector cylindrical coordinate system 2010 (e.g., the sector cylindrical coordinate system described with reference to FIG. 18 ) and an arc spherical coordinate system 2020 (e.g., the arc spherical coordinate system 1920 described with reference to FIG. 19 ), and vice versa. The transformable coordinate system according to the embodiment is not limited to the above-described example.

[0280] The orthogonal coordinate system 2000 according to the embodiment can be transformed into the sector cylindrical coordinate system 2010, and vice versa.

[0281] The orthogonal coordinate system 2000 according to the embodiment is the same as the 3D orthogonal coordinate system 1800 described with reference to FIG. 1 , and thus a detailed description thereof will be omitted.

[0282] The sectorial cylindrical coordinate system 2010 according to the embodiment can be composed of an X-axis, a Y-axis, and a Z-axis orthogonal to each other at an origin. A point (or a parameter) P on the sectorial cylindrical coordinate system 2010 can be expressed as (r, θ, φ). Here, r denotes a distance between the origin and a point obtained by orthogonally projecting the point P on an XY plane. θ denotes an angle between a positive direction of the X-axis and a straight line connecting the origin with a point obtained by orthogonally projecting the point P on the XY plane. φ denotes an angle between a straight line extending from a center point of a plane sector described below and perpendicular to a straight line connecting the point P and a point obtained by orthogonally projecting the point P on the XY plane and a straight line connecting the center and the point P (shown by a dotted line). The terms X-axis, Y-axis, and Z-axis are used only to distinguish the respective axes, and can be replaced with other terms. FIG. 11 The center point of the plane sector described above extends and φ denotes an angle between a straight line extending from a center point of a plane sector described below and perpendicular to a straight line connecting the point P and a point obtained by orthogonally projecting the point P on the XY plane and a straight line connecting the center and the point P (shown by a dotted line). The terms X-axis, Y-axis, and Z-axis are used only to distinguish the respective axes, and can be replaced with other terms.

[0283] The equation 2011 shown in the drawing indicates an equation for expressing geometric information expressed in orthogonal coordinates as a sectorial cylindrical coordinate system when the orthogonal coordinate system 2000 is transformed into the sectorial cylindrical coordinate system 2010 according to the orthogonal-sectorial coordinate transformation. That is, the equation 2011 indicates that a parameter of the sectorial cylindrical coordinate system can be expressed with one or more parameters of the orthogonal coordinate system according to the coordinate transformation (for example, x = r cos θ, y = r sin θ, z = φ).

[0284] The equation 2012 shown in the drawing is an equation for expressing geometric information expressed in a sectorial cylindrical coordinate as an orthogonal coordinate system when the sectorial cylindrical coordinate system is transformed into the orthogonal coordinate system according to the sectorial-orthogonal coordinate transformation. That is, the equation 2012 indicates that a parameter of the orthogonal coordinate system can be expressed with one or more parameters of the sectorial cylindrical coordinate system according to the coordinate transformation (for example, x = r cos θ).

[0285] The orthogonal coordinate system 2000 according to the embodiment can be transformed into an arc spherical coordinate system 2020, and vice versa. The arc spherical coordinate system 2020 according to the embodiment can be composed of an X-axis, a Y-axis, and a Z-axis orthogonal to each other at an origin. A point (or a parameter) P on the arc spherical coordinate system can be expressed as (ρ, θ, φ). Here, ρ denotes a distance from the origin O to the point P, and has a value greater than or equal to 0 (ρ ≥ 0). θ denotes an angle between a line connecting the origin with a point obtained by orthogonally projecting the point P on an XY plane and a positive direction of the X-axis, and has a value within a certain range (0 ≤ θ ≤ 2π). φ denotes an angle between a line connecting the point P and a point obtained by orthogonally projecting the point P on the XY plane and a straight line (shown by a dotted line) connecting the origin and the point P. The terms X-axis, Y-axis, and Z-axis are used only to distinguish the respective axes, and can be replaced with other terms.

[0286] ​Equation 2021 shown in the diagram represents an equation for expressing geometric information represented in an orthogonal coordinate system as an equation of an arc spherical coordinate system when the orthogonal coordinate system is transformed into the arc spherical coordinate system according to the orthogonal-arc spherical coordinate transformation. That is, Equation 2021 indicates that parameters of the arc spherical coordinate system can be expressed with one or more parameters of the orthogonal coordinate system according to the coordinate transformation (for example, ).

[0287] Equation 2022 shown in the diagram represents an equation for expressing geometric information represented in an arc spherical coordinate system as an orthogonal coordinate when the arc spherical coordinate system is transformed into the orthogonal coordinate system according to the arc spherical-orthogonal coordinate transformation. That is, Equation 2022 indicates that parameters of the orthogonal coordinate system can be expressed with one or more parameters of the arc spherical coordinate system according to the coordinate transformation (for example, ).

[0288] A point cloud data transmitting apparatus according to an embodiment (for example, the point cloud data transmitting apparatus described with reference to FIG. 14 , FIG. 15 , FIG. 1 and FIG. 13 ) generates and transmits signaling information related to coordinate transformation to a point cloud data receiving apparatus (for example, the point cloud data receiving apparatus described with reference to FIG. 14 , FIG. 16 , FIG. 1 and FIG. 13 ). The signaling information related to coordinate transformation can be signaled at a sequence level, a frame level, a tile level, a slice level, etc. A point cloud decoder according to an embodiment (for example, the point cloud decoder described with reference to FIG. 14 , FIG. 16 , FIG. 21 and FIG. 15-20 ) can perform a decoding operation based on the signaling information related to coordinate transformation, which is opposite to an encoding operation of a point cloud encoder. In addition, the point cloud decoder according to an embodiment can perform coordinate transformation by deriving the coordinate transformation based on whether to perform coordinate transformation on a neighboring block, a size of a block, a number of points, and a quantization value, without receiving the signaling information related to coordinate transformation.

[0289] FIG. 21 An example of coordinate projection is illustrated.

[0290] A point cloud transmitting apparatus performs coordinate projection in which geometry represented in a transformed coordinate system obtained by referring to the coordinate transformation described with reference to FIG. 15-17 is projected in a compressible form. FIG. 22 An example of coordinate projection (for example, coordinate projection 1641) described with reference to FIG. 19 is illustrated. FIG. 20 A sector-cylinder coordinate system 2100 (for example, the sector-cylinder coordinate system 1910 described with reference to FIG. 20 is illustrated.FIG. 21 The described sector-cylinder coordinate system 2010 and the arc-sphere coordinate system 2110 (e.g., refer to FIG. 19 The described arc-sphere coordinate system 1920 and the arc-sphere coordinate system 2020) are transformed (projected) to a rectangular cylinder space 2120 and vice versa. The rectangular cylinder space 2120 according to the embodiment can be represented in a three-dimensional coordinate system composed of an x-axis, a y-axis, and a z-axis (or an x'-axis, a y'-axis, and a z'-axis), and can be referred to as a bounding box. In addition, each of the x'-axis, the y'-axis, the z'-axis has a maximum value (x_max, y_max, z_max) and a minimum value (x_min, y_min, z_min). In FIG. 22 In the illustrated transformation operation, the parameters (r, θ, φ) representing a point P in the sector-cylinder coordinate system 2100 and the parameters (ρ, θ, φ) representing the point P in the arc-sphere coordinate system 2110 are represented with the parameters of the x'-axis, the y'-axis, and the z'-axis, respectively. Each of the parameters (r, θ, φ) and the parameters (ρ, θ, φ) can correspond to one of the x'-axis, the y'-axis, and the z'-axis (e.g., r corresponds to the x'-axis), or can be transformed to correspond thereto according to a separate transformation formula. For example, the parameter φ of the sector-cylinder coordinate system 2100 having a limited range is mapped to the z'-axis by applying a tangent function. Accordingly, the value mapped on the z'-axis converges according to the limited range, and thus compression efficiency can be improved.

[0291] The formula representing the projection of the parameters (r, θ, φ) of the arc-sphere coordinate system 2110 according to the embodiment is given as follows.

[0292] [Formula 1]

[0293]

[0294] That is, f x (r) represents the projection of the parameter r on the x-axis, f y (θ) represents the projection of the parameter θ on the y-axis, and f z (φ) represents the projection of the parameter φ on the z-axis. The formula representing the projection that minimizes the calculation of the trigonometric functions in the above formula is as follows.

[0295] [Formula 2]

[0296]

[0297] The formula representing the projection of the parameters (ρ, θ, φ) of the arc-sphere coordinate system 2110 according to the embodiment is as follows.

[0298] [Formula 3]

[0299]

[0300] That is, fx (p) denotes a projection of the parameter p on the x-axis, f y (q) denotes a projection of the parameter q on the y-axis, and f z (r) denotes a projection of the parameter r on the z-axis. The formula for the projection that minimizes the calculation of the trigonometric functions in the above formula is as follows.

[0301] [Formula 4]

[0302]

[0303] In the above formula, (x c , y c , z c ) denotes the center position of the pre-projection fan column coordinate system 2100. The center position is the same as the center of the planar fan described with reference to FIG. 22 In addition, (x c , y c , z c ) according to the embodiment can denote the lidar head position (for example, the origin of the x, y, and z coordinates of the world coordinate system).

[0304] FIG. 16 An example of laser position adjustment is shown.

[0305] FIG. 17 An example of the laser position adjustment 1642 described with reference to FIG. 19 and the laser position adjustment 1732 described with reference to FIG. 19 is shown. As described with reference to FIG. 19-20 , the lidar head (for example, the lidar head 1900 described with reference to FIG. 22 includes one or more laser modules arranged in a vertical plane. In order to secure a large amount of data with a wider coverage, the one or more laser modules are arranged to output laser light radially. The actual laser light is output at the end of the laser module. Therefore, the position of the laser light is different from the position of the lidar head corresponding to the center of the planar fan described with reference to FIG. 22 In addition, there is a position difference between the uppermost laser ray output from the laser module provided at the upper portion of the lidar head and the lowermost laser ray output from the laser module provided at the lower portion of the lidar. When the position difference between the laser rays is not reflected, the accuracy of the projection can be reduced. Therefore, the point cloud transmission device according to the embodiment performs projection reflecting the performed laser position adjustment to align the starting point of each laser with the lidar head position.

[0306] FIG. 21The left portion shows the structure 2200 of a lidar head including any laser module that outputs a laser beam. As shown, the position of the laser output from the laser module is represented by a horizontal distance r from the lidar head position. L and spaced z from the position of the lidar head in the vertical direction L The relative position.

[0307] FIG. 4-6 The right part of the figure shows an example 2210 representing the relative position of the laser in a three-dimensional coordinate system. The three-dimensional coordinate system shown in the figure is used to express a reference. FIG. 21-22 The coordinate system described is a projection (e.g., a rectangular cylindrical space 2120), and consists of an x' axis, a y' axis, and a z' axis. The head position described above can be set as the origin of the coordinate system (0,0,0), and the relative position of the laser is represented as (x... L ,y L ,z L ). Parameter (x) L ,y L Based on r L This indicates that it is the relative distance from the head position in the horizontal direction, as shown below.

[0308] x L =r L ·cosθ, and y L =r L ·sinθ.

[0309] According to implementation method (x) L ,y L ,z L The data can be calculated directly by the point cloud transmitting and receiving devices, or it can be sent to the point cloud transmitting and receiving devices via signaling, etc.

[0310] The laser position application values ​​for the parameters (r, θ, φ) of the sector cylindrical coordinate system (e.g., sector cylindrical coordinate system 2110) are given below.

[0311] [Formula 5]

[0312]

[0313] The laser position application values ​​for the parameters (ρ, θ, φ) of the arc cylindrical coordinate system (e.g., arc cylindrical coordinate system 2110) are given below.

[0314] [Formula 6]

[0315]

[0316] As described above, the point cloud transmission device can perform attribute compilation by reorganizing points based on a Morton code. The Morton code assumes that position information about individual points is a positive integer. Accordingly, the point cloud transmission device performs voxelization (e.g., refer to FIG. 16 described voxelization) so that parameters representing positions of projected point cloud data (e.g., parameters representing a coordinate system of a rectangular prism space 2120 described with reference to FIG. 19-22 FIG. 21) are positive integers. When the distance between points is sufficient, lossless compression can be made even when voxelization is performed. However, when the distance between points is short, loss can occur when voxelization is performed.

[0317] Accordingly, the point cloud transmission device performs additional correction by performing sampling rate adjustment (e.g., refer to FIG. 19-21 described sampling rate adjustment 1643) on projected point cloud data (e.g., geometry).

[0318] The sampling rate adjustment according to the embodiment is performed by defining a scale factor of individual projection axes by considering a range of a projection value and a characteristic of a data acquisition device (e.g., a laser radar). As described with reference to FIG. 20-22 , parameters r and p of a sectorial spherical coordinate system (e.g., a sectorial cylindrical coordinate system 1910, a sectorial cylindrical coordinate system 2010, a sectorial cylindrical coordinate system 2100, etc.) and parameters p and p of an arc spherical coordinate system (an arc spherical coordinate system 1920, an arc spherical coordinate system 2020, and an arc spherical coordinate system 2110) represent a distance from a center of individual coordinate systems to a target point (e.g., refer to FIG. 1 described point P). Accordingly, the parameters r and p have a value greater than or equal to 0, and a frequency of data is determined according to a resolution based on a laser-based distance and an analysis capability of an acquisition device. The parameters q and q of the sectorial cylindrical coordinate system and the arc spherical coordinate system represent a horizontal rotation angle around a vertical axis. Accordingly, the parameters q can be in a range of 0 to 360 degrees, which determines a frequency of data acquired per degree when a laser radar head (e.g., refer to FIG. 10 described laser radar head) rotates. The parameters of the arc spherical coordinate system represent an angle with respect to a vertical axis. Since the angle with respect to the vertical axis is highly related to an angle of a single laser, the parameters can vary from -p / 2 to p / 2, and a frequency of data can be determined based on a number of lasers, a vertical position of the lasers, and an accuracy of the lasers. Accordingly, the sampling rate adjustment according to the embodiment defines a scale factor of a projection parameter based on characteristics of individual parameters as described above. Hereinafter, a scale factor of a projection (parameters r, q, ) of the sectorial cylindrical coordinate system will be described for simplicity. However, the sampling rate adjustment is not limited to this example. The sampling rate adjustment can be equally applied to a projection (parameters p, q, ) and other projections.

[0319] The sampling rate adjustment for the projection of the sectorial cylindrical coordinate system according to the embodiments can be expressed as follows.

[0320] f s (r L ) = s r · f(r L ), f s (θ s ) = s θ · f(θ L ), f s (φ s ) = s φ · f(φ L )

[0321] Here, r L , θ L and φ L are parameters representing points obtained by performing laser position adjustment. f(r L ), f(θ L ) and f(φ L ) represent respective axes of the 3D coordinate system on which the parameters are projected. s r is a scale factor for the parameter r L and is applied to the axis represented by f(r L ) (e.g., the X’ axis). s θ is a scale factor for θ L and is applied to the axis represented by f(θ L ) (e.g., the Y’ axis). s φ is a scale factor for φ L and is applied to the axis represented by f(φ L ) (e.g., the Z’ axis).

[0322] The sampling rate adjustment for the projection of the sectorial cylindrical coordinate system according to the embodiments can be expressed as follows.

[0323] x′ = s r · r L , y′ = s θ · θ L , and z′ = s φ · tanφ L .

[0324] The scale factor parameters s r , s θ and s φ according to the embodiments can be derived from the maximum length of the edges of the bounding box normalized to the length of the edges of the bounding box of the respective axes.

[0325] The scale factor according to the embodiment can be defined based on mechanical characteristics of the point cloud data acquisition device. For example, when an acquisition device (e.g., a laser radar head) in which N lasers are arranged on a vertical plane is rotated in a horizontal direction and M laser reflections are detected per degree, and a spot radius generated by each laser light source is D, the scale factor is defined as follows.

[0326] s r = k r , s θ = k θ M and s φ = k φ D.

[0327] Here, k r , k θ and k φ denote constants.

[0328] When expressing the minimum distance between data acquired by each laser light source in a vertical direction, a horizontal direction, and a radial direction, the scale factor according to the embodiment is expressed as follows.

[0329]

[0330] Here, d r , d θ and d φ denote distances with respect to a direction in which a radius increases, an angle of a rotation direction, and an angle of a vertical direction, respectively. min() can denote a minimum value in point cloud data or a minimum value according to physical characteristics.

[0331] In addition, the scale factor according to the embodiment can be defined as a function of density on each axis and expressed as follows.

[0332] s r = k r N r / D r , s θ = k θ N θ / D θ and s φ = k φ N φ / D φ

[0333] That is, a relatively large scale factor is applied to an axis having a high density per unit length, and a relatively small scale factor is applied to an axis having a low density per unit length. Here, N denotes the maximum number of points in a direction parallel to each axis, and D denotes the length of each axis. A value obtained by dividing N by D corresponds to the density of the corresponding axis.

[0334] The scale factor according to the embodiment can be defined according to the importance of information. For example, information close to the origin can be considered as information of higher importance, and information far from the origin can be considered as information of relatively lower importance. Accordingly, the scale factor can be defined to assign a relative weight to information close to the origin, front information based on a horizontal / vertical angle, or information close to the horizon, and expressed as follows.

[0335] s r = k r / g(r), s θ = k θ / g(θ), and s φ = k φ / g(φ)

[0336] Here, g(r), g(θ), and g(φ) denote weights of the respective axes, and can be expressed as inverses of a step function or an exponential function indicating a value set according to an important region.

[0337] The point cloud transmission device according to the embodiment can move the respective axes so that the respective axes start from the origin so that the projected point cloud data (e.g., geometry) has a positive value, or correct the axes so that the lengths of the respective axes are powers of 2. The projected point cloud data according to the correction is expressed as follows.

[0338]

[0339] When the lengths of the three axes are corrected to be equal to each other to improve compression efficiency, the projected point cloud data according to the correction is expressed as follows.

[0340]

[0341] Here, max can denote max(max r , max θ , max φ ). Alternatively, it can be a value closest to 2 n-1 among numbers corresponding to max(max r , max θ , max φ ).

[0342] The information regarding the sampling rate adjustment according to the embodiment (including information regarding the scale factor) can be transmitted to a point cloud reception device (e.g., a reception device 10004 of FIG. 11 , a point cloud decoder of FIG. 13 , and FIG. 23 FIG. 15-22 ​The point cloud receiving apparatus can acquire information on the sampling rate adjustment and perform the sampling rate adjustment according to the information.

[0343] The following table shows the summary of the BD rate of the coordinate transformation that facilitates the attribute (e.g., prediction refinement compilation scheme). The summary of the delta(BD) rate and the BD PSNR. The overall average of the attribute (i.e., reflection gain) is 5.4%, 4.0%, 1.4%, and 2.7% for the C1, C2, CW, and CY conditions.

[0344] Table

[0345]

[0346] The projection according to the embodiment is also applied to the RAHT compilation. The following table shows the summary of the BD rate of the coordinate transformation in the RAHT compilation. It can be seen that the average of the point cloud data (e.g., Cat3 frame data) is greatly improved, with a gain of 15.3% and 12.5% for the C1 and C3 conditions, respectively.

[0347] Table

[0348]

[0349] FIG. 23 An example of voxelization is shown.

[0350] By referring to FIG. 23 The processing described transforms the point cloud data (geometry) expressed in a coordinate system consisting of x, y, z into a domain that is compression efficient with respect to, for example, distance, angle. The transformed point cloud data is transformed into position information in integer units through a voxelization operation.

[0351] FIG. 1 The left part of FIG. 23 shows an example 2300 of point cloud data of one frame as a point cloud data sequence without applying the projection. FIG. 12 The right part of FIG. 23 shows examples of point cloud data projected based on the sectorial cylindrical coordinate system. Specifically, a first example 2310 shows the projected point cloud data when observing the r-θ plane. A second example 2320 shows the projected point cloud data when observing the -θ plane. A third example 2330 shows the projected point cloud data when observing the r- plane.

[0352] The point cloud processing apparatus (e.g., the transmitting apparatus described with reference to FIG. 14 , FIG. 5 and FIG. 6 The point cloud processing apparatus (e.g., the transmitting apparatus described with reference to

[0353] ​The point cloud data (or point cloud frame) can be partitioned into tiles and slices.

[0354] The point cloud data can be partitioned into a plurality of slices and encoded in a bitstream. One slice is a set of points and expressed as a series of syntax elements representing all or part of the encoded point cloud data. One slice can or can not depend on other slices. In addition, one slice includes one geometry data unit and can have one or more attribute data units, or can have zero attribute data units. As described above, since attribute encoding is performed based on geometry encoding, the attribute data unit is based on the geometry data unit in the same slice. That is, the point cloud data receiving apparatus (e.g., the reception apparatus 10004 or the point cloud video decoder 10006) can process the attribute data based on the decoded geometry data. Therefore, in a slice, the geometry data unit must appear before the associated attribute data unit. The data units in a slice must be consecutive, and the order of the slices is not specified.

[0355] A tile is a (three-dimensional) cuboid in a bounding box (e.g., the bounding box described above). The bounding box can include one or more tiles. One tile can completely or partially overlap another tile. One tile can include one or more slices. FIG. 1

[0356] Accordingly, the point cloud data transmitting apparatus can provide high-quality point cloud content by processing data corresponding to a tile according to importance. That is, the point cloud data transmitting apparatus according to the embodiments can perform point cloud compression encoding on data corresponding to an area important to a user with better compression efficiency and appropriate delay.

[0357] The bitstream according to the embodiments contains signaling information and a plurality of slices (slice 0,..., slice n). As illustrated, the signaling information precedes the slices in the bitstream. Accordingly, the point cloud data receiving apparatus can first obtain the signaling information and sequentially or selectively process the plurality of slices based on the signaling information. As illustrated, slice 0 includes one geometry data unit Geom00 and two attribute data units Attr00 and Attr10. In addition, the geometry data unit appears before the attribute data units in the same slice. Accordingly, the point cloud data receiving apparatus processes (decodes) the geometry data unit (or geometry data) and then processes the attribute data units (or attribute data) based on the processed geometry data. The signaling information according to the embodiments can be referred to as signaling data, metadata, or the like, but is not limited thereto.

[0358] ​According to embodiments, the signaling information includes a sequence parameter set (SPS), a geometry parameter set (GPS), and one or more attribute parameter sets (APS). The SPS is encoding information about an entire sequence, such as a profile or a level, and can include comprehensive information about an entire sequence (sequence level), such as a picture resolution and a video format. The GPS is information about geometry encoding applied to geometry included in a sequence (bitstream). The GPS can include information about an octree (for example, referring to FIG. 10 the described octree) and information about an octree depth. The APS is information about attribute encoding applied to attributes included in a sequence (bitstream). As illustrated, the bitstream contains one or more APSs (for example, APS0, APS1,...) according to an identifier for identifying attributes.

[0359] According to embodiments, the signaling information can further include information about tiles (for example, a tile manifest). The information about tiles can include information about a tile identifier, a tile size, and the like. According to embodiments, the signaling information is applied to a corresponding bitstream as information about a sequence, that is, a bitstream level. In addition, the signaling information has a syntax structure including a syntax element and a descriptor describing the syntax element. A pseudo code for describing syntax can be used. In addition, the point cloud reception apparatus (for example, FIG. 11 the reception apparatus 10004, FIG. 13 and FIG. 15-23 the point cloud decoder of the reception apparatus, and FIG. 24 the reception apparatus) can sequentially parse and process the syntax elements occurring in the syntax.

[0360] Although not illustrated in the figures, the geometry data unit and the attribute data unit respectively include a geometry header and an attribute header. The geometry header and the attribute header are signaling information applied at a corresponding slice level and have the syntax structure described above.

[0361] The geometry header includes information (or signaling information) for processing the corresponding geometry data unit. Accordingly, the geometry header first occurs in the geometry data unit. The point cloud reception apparatus can process the geometry data unit by first parsing the geometry header. The geometry header is associated with the GPS, which contains information about an entire geometry. Accordingly, the geometry header contains information specifying gps_geom_parameter_set_id included in the GPS. In addition, the geometry header contains tile information (for example, tile_id) and a slice identifier related to a slice to which the geometry data unit belongs.

[0362] The attribute header contains information (or signaling information) for processing the corresponding attribute data unit. Accordingly, the attribute header first appears in the attribute data unit. The point cloud reception apparatus can process the attribute data unit by first parsing the attribute header. The attribute header is associated with the APS, which contains information about all attributes. Accordingly, the attribute header contains information specifying aps_attr_parameter_set_id included in the APS. As described above, attribute decoding is based on geometry decoding. Accordingly, the attribute header contains information specifying a slice identifier included in the geometry header, in order to determine the geometry data unit associated with the attribute data unit.

[0363] When the point cloud transmission apparatus performs the projection described above, the signaling information in the bitstream can further include projection-related signaling information. The projection-related signaling information according to embodiments can be included in sequence-level signaling information (e.g., SPS, APS, etc.), or in slice-level (e.g., attribute header), SEI message, etc. The point cloud reception apparatus according to embodiments can perform decoding including inverse projection based on the projection-related signaling information. FIG. 1

[0364] FIG. 10 An example of a syntax structure showing the projection-related signaling information is shown.

[0365] The projection-related signaling information according to embodiments can be included in signaling information at various levels (e.g., sequence level, slice level, etc.). The projection-related signaling information is transmitted to the point cloud reception apparatus (e.g., reception apparatus 10004, point cloud decoder of the reception apparatus, point cloud decoder of the reception apparatus, reception apparatus) together with signaling information indicating whether projection has been performed (e.g., projection_flag). FIG. 11 FIG. 13 FIG. 19-20 FIG. 18

[0366] projection_flag: When the value of projection_flag is 1, it indicates that the decoded data in the decoder post-processing operation should be re-projected into the XYZ coordinate space.

[0367] The point cloud reception apparatus checks whether re-projection is performed based on the projection_flag. In addition, when the value of projection_flag is 1, the point cloud reception apparatus can acquire the projection-related signaling information and perform re-projection. The projection-related signaling information according to embodiments can be defined as a concept including signaling information indicating whether projection has been performed (projection_flag), but is not limited thereto.

[0368] ​​​​​projection_info_id: An identifier used to identify the projection information.

[0369] coordinate_conversion_type: Indicates a coordinate conversion type related to the coordinate conversion FIG. 18 described. coordinate_conversion_type equal to 0 indicates that the coordinates are cylindrical coordinates (e.g., refer to the cylindrical coordinate system 1810 described in FIG. 20 ). coordinate_conversion_type equal to 1 indicates that the coordinates are spherical coordinates (e.g., refer to the spherical coordinate system 1820 described in FIG. 20 ). coordinate_conversion_type equal to 2 indicates that the coordinates are sectorial cylindrical coordinates (e.g., refer to the sectorial cylindrical coordinate system 2010 described in FIG. 21 ). coordinate_conversion_type equal to 3 indicates that the coordinates are arched spherical coordinates (e.g., refer to the arched spherical coordinate system 2020 described in FIG. 20-21 ).

[0370] projection_type: Indicates a type of projection (e.g., refer to the projection described in FIG. 20 ) for the coordinate conversion type. As described in reference to FIG. 21 , when the value of coordinate_conversion_type is 2, the coordinate system before the projection is the sectorial cylindrical coordinate system (e.g., FIG. 22 the sectorial cylindrical coordinate system 2010 of FIG. 19A, and FIG. 16 the sectorial cylindrical coordinate system 2100 of FIG. 21A). When the value of projection_type is 0, the x-axis, the y-axis, and the z-axis are matched with the parameters (r, θ, φ) of the sectorial cylindrical coordinate system, respectively (Equation 1). When the value of projection_type is 0, the x-axis, the y-axis, and the z-axis are matched with r 2 , , and tan φ, respectively (Equation 2). The projection type is not limited to this example and can be defined for each axis.

[0371] laser_position_adjustment_flag: Indicates whether laser position adjustment (e.g., refer to the laser position adjustment described in FIG. 21 ) is applied. laser_position_adjustment_flag equal to 1 indicates that the laser position adjustment is applied.

[0372] `num_laser`: Indicates the total number of lasers. The following "for" statement contains elements indicating the laser position information for each laser. Here, `i` represents each laser and is greater than or equal to 0 and less than the total number of lasers indicated by `num_laser`.

[0373] r_laser[i]: Indicates the horizontal distance of laser i from the central axis.

[0374] z_laser[i]: Indicates the vertical distance of laser i from the horizontal center.

[0375] theta_laser[i]: Indicates the vertical angle of laser i.

[0376] The laser position information according to the implementation is not limited to the examples above. For example, the laser position can be represented as parameters representing the corresponding axes of the coordinate system of the projection, such as x_laser[i], y_laser[i], and z_laser[i].

[0377] The following elements indicate the sampling rate adjustment (e.g., reference). FIG. 21 Information related to the described sampling rate adjustment (1643).

[0378] `sampling_adjustment_cubic_flag`: Indicates whether the lengths of the three axes are corrected to be equal to each other during sampling rate adjustment. A `sampling_adjustment_cubic_flag` value of 1 indicates that the three axes should be corrected to have the same length.

[0379] `sampling_adjustment_spread_bbox_flag`: Indicates whether to perform sampling rate adjustment to ensure that the distribution of point cloud data is uniform within the bounding box. When the value of `sampling_adjustment_spread_bbox_flag` is 1, a correction for uniformly widening the distribution within the bounding box is used during sampling rate adjustment.

[0380] `sampling_adjustment_type`: Indicates the type of sampling rate adjustment. `sampling_adjustment_type` equal to 0 indicates sampling rate adjustment based on mechanical characteristics; `sampling_adjustment_type` equal to 1 indicates sampling rate adjustment based on the minimum axial distance between points; `sampling_adjustment_type` equal to 2 indicates sampling rate adjustment based on density on each axis; `sampling_adjustment_type` equal to 3 indicates sampling rate adjustment based on the importance of the points. The type of sampling rate adjustment is not limited to this example.

[0381] geo_projection_enable_flag: indicates whether to apply projection in geometry compilation.

[0382] attr_projection_enable_flag: indicates whether to apply projection in attribute compilation.

[0383] bounding_box_x_offset, bounding_box_y_offset, and bounding_box_z_offset: correspond to X-axis value, Y-axis value, and Z-axis value indicating the origin of the range (bounding box) of the point cloud data containing the projection. For example, when the value of projection_type is 0, the values of bounding_box_x_offset, bounding_box_y_offset, and bounding_box_z_offset are represented as (0, 0, 0). When the value of projection_type is 1, the values of bounding_box_x_offset, bounding_box_y_offset, and bounding_box_z_offset are represented as (-r_max1, 0, 0).

[0384] bounding_box_x_length, bounding_box_y_length, and bounding_box_z_length: can indicate the range (bounding box) of the point cloud data containing the projection. For example, when the value of projection_type is 0, the values of bounding_box_x_length, bounding_box_y_length, and bounding_box_z_length are r_max, 360, and z_max, respectively. When the value of projection_type is 1, the values of bounding_box_x_length, bounding_box_y_length, and bounding_box_z_length are r_max1+r_max2, 180, and z_max, respectively.

[0385] orig_bounding_box_x_offset, orig_bounding_box_y_offset, and orig_bounding_box_z_offset: correspond to X-axis value, Y-axis value, and Z-axis value indicating the origin of the range (bounding box) of the point cloud data before the projection.

[0386] orig_bounding_box_x_length, orig_bounding_box_y_length, orig_bounding_box_z_length: Can indicate the range (bounding box) containing the point cloud data before coordinate transformation.

[0387] rotation_yaw, rotation_pitch, and rotation_roll: Indicate rotation information used in coordinate transformation.

[0388] When the value of coordinate_conversion_type is 0 or 2, that is, when the coordinate system before projection is a cylindrical coordinate system or a sector cylindrical coordinate system, the following elements indicate information related to the coordinate system.

[0389] cylinder_center_x, cylinder_center_y, and cylinder_center_z: Correspond to the X-axis value, Y-axis value, and Z-axis value indicating the center position of the cylinder represented by the cylindrical coordinate system before projection.

[0390] cylinder_radius_max, column_degree_max, and column_z_max: Indicate the maximum values of the radius, angle, and height of the cylinder represented by the cylindrical coordinate system before projection.

[0391] ref_vector_x, ref_vector_y, and ref_vector_z: Indicate the directionality of the reference vector in the (x, y, z) direction with respect to the center when projecting the cylinder represented by the cylindrical coordinate system. It can correspond to the x-axis of the projected rectangular cylinder space (for example, refer to the rectangular cylinder space 2120 described above). FIG. 21

[0392] normal_vector_x, normal_vector_y, and normal_vector_z: Indicate the directionality of the normal vector of the cylinder represented by the cylindrical coordinate system in the (x, y, z) direction with respect to the center. They can correspond to the z-axis of the projected rectangular cylinder space (for example, refer to the rectangular cylinder space 2120 described above). FIG. 25

[0393] ​​clockwise_degree_flag: indicates a direction in which an angle of a cylinder represented by a cylindrical coordinate system is estimated. clockwise_degree_flag equal to 1 indicates that a direction in which an angle of a cylinder is estimated is clockwise when the cylinder is viewed from the top. clockwise_degree_flag equal to 0 indicates that a direction in which an angle of a cylinder is estimated is counterclockwise when the cylinder is viewed from the top. The direction in which an angle of a cylinder represented by a cylindrical coordinate system is estimated can correspond to a y-axis direction of a projected rectangular cylinder space (for example, refer to the rectangular cylinder space 2120 described above). FIG. 25

[0394] granularity_angular, granularity_radius, and granularity_normal: parameters indicating a resolution of an angle, a distance from a circular planar surface to a center of a cylinder, and a distance to the center in a normal vector direction. The parameters can correspond to the above-mentioned scale factors a, b, and g, respectively.

[0395] As illustrated, when the value of coordinate_conversion_type is 1 or 3, that is, the coordinate system before projection is a spherical coordinate system or an arc spherical coordinate system, and when the value of coordinate_conversion_type is 0 or 2, that is, the coordinate system before projection is a cylindrical coordinate system or a sector cylindrical coordinate system, the syntax structure of the projection-related signaling information includes the same elements as those indicating the corresponding coordinate system-related information. Details of the elements are the same as those of the above-mentioned elements, and thus a description thereof will be omitted.

[0396] FIG. 24 An example of signaling information according to an embodiment is illustrated.

[0397] FIG. 24 is a syntax structure of an SPS, and illustrates an example in which projection-related signaling information is included in an SPS at a sequence level.

[0398] profile_compatibility_flags: indicates whether a bitstream conforms to a certain profile or another profile for decoding. A profile specifies constraints imposed on a bitstream to specify the capabilities of the bitstream decoding. Each profile is a subset of algorithmic features and limitations, and is supported by all decoders conforming to the profile. profile_compatibility_flags is used for decoding and can be defined according to a standard or the like.

[0399] level_idc: indicates a level applied to a bitstream. The level is used in all profiles. In general, the level corresponds to a certain decoder processing load and storage capacity. ​

[0400] sps_bounding_box_present_flag: indicates whether information on a bounding box is present in the SPS. sps_bounding_box_present_flag equal to 1 indicates that information on a bounding box is present. sps_bounding_box_present_flag equal to 0 indicates that information on a bounding box is not defined.

[0401] When the value of sps_bounding_box_present_flag is 1, the following information on a bounding box is included in the SPS.

[0402] sps_bounding_box_offset_x: indicates a quantized x-axis offset of a source bounding box in a Cartesian coordinate system including x-axis, y-axis, and z-axis.

[0403] sps_bounding_box_offset_y: indicates a quantized y-axis offset of a source bounding box in a Cartesian coordinate system including x-axis, y-axis, and z-axis.

[0404] sps_bounding_box_offset_z: indicates a quantized z-axis offset of a source bounding box in a Cartesian coordinate system including x-axis, y-axis, and z-axis.

[0405] sps_bounding_box_scale_factor: indicates a scale factor for indicating a size of a source bounding box.

[0406] sps_bounding_box_size_width: indicates a width of a source bounding box in a Cartesian coordinate system including x-axis, y-axis, and z-axis.

[0407] sps_bounding_box_size_height: indicates a height of a source bounding box in a Cartesian coordinate system including x-axis, y-axis, and z-axis.

[0408] sps_bounding_box_size_depth: indicates a depth of a source bounding box in a Cartesian coordinate system including x-axis, y-axis, and z-axis.

[0409] The SPS syntax according to the embodiments further includes the following elements.

[0410] sps_source_scale factor: indicates a scale factor of source point cloud data.

[0411] sps_seq_parameter_set_id: This is an identifier of the SPS, for reference by other syntax elements (e.g., seq_parameter_set_id in GPS).

[0412] sps_num_attribute_sets: Indicates the number of attributes encoded in the bitstream. The value of sps_num_attribute_sets is in the range of 0 to 63.

[0413] The following "for" statement includes elements indicating information about each attribute, as many as the number indicated by sps_num_attribute_sets. In the figure, i represents each attribute (or attribute set). The value of i is greater than or equal to 0 and less than the number indicated by sps_num_attribute_sets.

[0414] attribute_dimension_minus1[i]: Indicates a value smaller than the number of components of the i-th attribute by 1. When the attribute is color, the attribute corresponds to a three-dimensional signal representing the characteristics of light of a target point. For example, the attribute can be signaled by three components of RGB (red, green, and blue). The attribute can be signaled by three components of YUV (YUVs are luminance and two chrominances). When the attribute is reflectance, the attribute corresponds to a one-dimensional signal representing the light reflectance intensity ratio of a target point.

[0415] attribute_instance_id[i]: Indicates the instance id of the i-th attribute. attribute_instance_id is used to distinguish the same attribute label and attribute.

[0416] attribute_bitdepth_minus1[i]: Indicates a value smaller than the bit depth of the first component of the i-th attribute signal by 1. The value of this element plus 1 specifies the bit depth of the first component.

[0417] attribute_cicp_colour_primaries[i]: Indicates the chromaticity coordinates of the color attribute source primary of the i-th attribute.

[0418] attribute_cicp_transfer_characteristics[i]: Indicates the reference optoelectric transfer function of the color attribute as a function of the source input linear light intensity Lc, with a nominal real value in the range of 0 to 1, or indicates the inverse function of the reference optoelectric transfer function of the color attribute as a function of the output linear light intensity Lo, with a nominal real value in the range of 0 to 1.

[0419] attribute_cicp_matrix_coeffs[i]: indicates the matrix coefficients used to derive the luma and chroma signals from the RBG or YXZ primary colors.

[0420] attribute_cicp_video_full_range_flag[i]: indicates the black level and range of the luma and chroma signals derived from the component signals with real values of E'Y, E'PB and E'PR or E'R, E'G and E'B.

[0421] known_attribute_label_flag[i], known_attribute_label[i] and attribute_label_fourbytes[i] are used together to identify the type of data sent with the i-th attribute. known_attribute_label_flag[i] indicates whether the attribute is identified by the value of known_attibute_label[i] or by the value of attribute_label_fourbytes[i] which is another object identifier.

[0422] As mentioned above, the SPS syntax includes signaling information related to projection.

[0423] projection_flag is the same as described with reference to FIG. 24 projection_flag. When the value of projection_flag is 1, the SPS syntax further includes signaling information related to projection (projection_info()) described with reference to FIG. 26 FIG. 26 Since the signaling information related to projection is the same as described with reference to

[0424] sps_extension_flag: indicates whether sps_extension_data_flag is present in the SPS. sps_extension_flag equal to 0 indicates that the sps_extension_data_flag syntax element is not present in the SPS syntax structure. The value 1 of sps_extension_flag is reserved for future use. After sps_extension_flag is set to 1, the decoder can ignore all sps_extension_data_flag syntax elements.

[0425] sps_extension_data_flag: indicates whether data for future use is present and can have any value. ​

[0426] The SPS syntax according to the embodiments is not limited to the above examples, and can further include additional elements or can exclude some elements shown in the figures for signaling efficiency. Some elements can be signaled through signaling information other than SPS (e.g., APS, attribute header, etc.) or through an attribute data unit.

[0427] FIG. 24 An example of signaling information according to the embodiments is shown.

[0428] FIG. 24 A syntax structure of a tile list is shown, and an example in which projection-related signaling information is included in the tile list at the tile level is shown.

[0429] num_tiles: indicates the number of tiles.

[0430] The following 'for' statement indicates information about each tile. Here, i indicates each tile, and is greater than or equal to 0 and less than the number of tiles indicated by num_tiles.

[0431] tile_bounding_box_offset_x[i], tile_bounding_box_offset_y[i], and tile_bounding_box_offset_z[i]: indicate an x-axis offset value, a y-axis offset value, and a z-axis offset value of the bounding box of tile i, respectively.

[0432] tile_bounding_box_size_width[i], tile_bounding_box_size_height[i], and tile_bounding_box_size_depth[i]: indicate a width, a height, and a depth of the bounding box of tile i, respectively.

[0433] The syntax of the tile list according to the embodiments includes projection-related signaling information.

[0434] projection_flag is the same as described with reference to FIG. 24 projection_flag. When the value of projection_flag is 1, the SPS syntax further includes projection-related signaling information (projection_info()) described with reference to FIG. 27 projection_flag. Since the projection-related signaling information is the same as described with reference to FIG. 27 projection_flag, a detailed description thereof will be omitted.

[0435] The tile list syntax according to the embodiments is not limited to the above examples, and can further include additional elements or can exclude some of the elements shown in the figures for signaling efficiency. Some elements can be signaled through signaling information other than the tile list (e.g., SPS, APS, attribute header, etc.) or through an attribute data unit.

[0436] FIG. 2 An example of signaling information according to the embodiments is shown.

[0437] FIG. 24 The syntax structure of the attribute slice header is shown, and an example of including projection-related signaling information in the attribute slice header at the slice level is shown.

[0438] The syntax of the attribute header according to the embodiments includes the following syntax elements.

[0439] ash_attr_parameter_set_id: has the same value as aps_attr_parameter_set_id of the active SPS.

[0440] ash_attr_sps_attr_idx: specifies the order of the attribute set in the active SPS. ash_attr_geom_slice_id indicates the value of the slice ID (e.g., gsh_slice_id) included in the geometry header.

[0441] When the value of aps_slice_qp_delta_present_flag is 1, the syntax of the attribute slice header further includes the elements given below. aps_slice_qp_delta_present_flag is information included in the attribute parameter set (APS) and indicates whether the component QP offset indicated by ash_attr_qp_offset exists in the header of the attribute data unit.

[0442] ash_qp_delta_luma: indicates the luminance value of the component QP.

[0443] ash_qp_delta_chroma: indicates the chrominance value of the component QP.

[0444] The syntax of the attribute slice header according to the embodiments includes projection-related signaling information. projection_flag is the same as described with reference to FIG. 24 When the value of projection_flag is 1, the SPS syntax further includes projection-related signaling information (projection_info()) described with reference to FIG. 28 The projection-related signaling information according to the embodiments. Since the projection-related signaling information is included in the SPS, it is applied to all attribute data units in the tile.FIG. 28 The same is described, and thus a detailed description thereof will be omitted.

[0445] The syntax of the attribute slice header according to the embodiments is not limited to the above example, and can further include additional elements or can exclude some elements shown in the figure for signaling efficiency. Some elements can be signaled through signaling information other than the attribute slice header (e.g., SPS, APS, etc.) or through an attribute data unit.

[0446] FIG. 29 is signaling information according to the embodiments.

[0447] FIG. 29 The syntax structure of the APS is shown, and an example in which projection-related signaling information is included in the APS at the sequence level is shown.

[0448] attr_coord_conv_enable_flag: indicates whether a coordinate transformation (projection) is applied in attribute compilation. attr_coord_conv_enable_flag equal to 1 indicates that a coordinate transformation is applied. attr_coord_conv_enable_flag equal to 0 indicates that a coordinate transformation is not applied in attribute compilation.

[0449] The following 'for' statement represents the scale factor information of each attribute. Here, i indicates the x-axis, y-axis, and z-axis of the coordinate system. Thus, i has 0, 1, and 2 as its values.

[0450] attr_coord_conv_scale[i]: specifies a scale factor of a coordinate transformation axis in units of 2 -8 According to the embodiments, scaleaxis[i] is derived as follows.

[0451] ScaleAxis[0] = attr_coord_conv_scale[0]

[0452] ScaleAxis[1] = attr_coord_conv_scale[1]

[0453] ScaleAxis[2] = attr_coord_conv_scale[2]

[0454] Although not shown in the drawing, the syntax of the APS can include a coord_conv_scale_present_flag. The coord_conv_scale_present_flag indicates whether or not the coordinate conversion scale factors scale_x, scale_y, and scale_z are present. When the value of the coord_conv_scale_present_flag is 1, the scale factors are present. When the value of the coord_conv_scale_present_flag is 0, the coordinate conversion scale factors are not present. The scale factors according to the embodiments (e.g., scale_x, scale_y, scale_z described above) can be a minimum distance normalized by a maximum distance of the x-axis, the y-axis, and the z-axis.

[0455] The syntax of the APS according to the embodiments is not limited to the above examples, and can further include additional elements or can exclude some of the elements shown in the drawing for signaling efficiency. Some of the elements can be signaled by signaling information other than the APS (e.g., SPS, attribute slice header, etc.) or by an attribute data unit.

[0456] FIG. 1 is a flowchart showing operations of a point cloud data reception apparatus according to an embodiment.

[0457] FIG. 10 The flowchart 2900 of the point cloud data reception apparatus (or point cloud reception apparatus) that processes point cloud data on which projection has been performed (e.g., the reception apparatus 10004 of the point cloud decoding system 10000, FIG. 11 the reception apparatus 10004 of the point cloud decoding system 10000, FIG. 13 and FIG. 1-14 the point cloud decoder of the point cloud decoding system 10000, FIG. 13 the reception apparatus of the point cloud decoding system 10000) shows example operations. As described with reference to FIG. 24-28 the point cloud reception apparatus performs geometry decoding on an input geometry bitstream (2910). The geometry decoding according to the embodiments can include octree geometry decoding and trisoup geometry decoding, but is not limited thereto. The point cloud reception apparatus performs at least one of the operations of the arithmetic decoder 13002, the occupancy code-based octree reconstruction processor 13003, the surface model processor (triangle reconstruction, upsampling, voxelization) 13004, and the inverse quantization processor 13005 described with reference to FIG. 30 the point cloud reception apparatus outputs reconstructed geometry as a result of the geometry decoding.

[0458] The point cloud reception apparatus performs at least one of the operations of the arithmetic decoder 13002, the occupancy code-based octree reconstruction processor 13003, the surface model processor (triangle reconstruction, upsampling, voxelization) 13004, and the inverse quantization processor 13005 described with reference to FIG. 30The signaling information described is used to determine whether to apply the projection. When the projection is applied, the point cloud reception device performs the projection on the decoded geometry (2930) and performs attribute decoding based on the projected geometry (2940). When the projection is not applied, the point cloud reception device performs attribute decoding based on the reconstructed geometry (2940). The attribute decoding 2940 according to the embodiment corresponds to at least one of or a combination of the operations of the arithmetic decoder 13007, the inverse quantization processor 13008, the prediction / lifting / RAHT inverse transform processor 13009, and the color inverse transform processor 13010, but is not limited thereto. In addition, the attribute decoding 2940 according to the embodiment can include at least one of or a combination of the RAHT compilation, the prediction transform compilation, and the lifting transform compilation. When the projection is performed, the point cloud reception device performs inverse projection (2950). Since the decoded attributes match the projected geometry, the point cloud data of the geometry and the attributes matched in the coordinate system (or space) of the projection must be transformed back to the original coordinate system. Accordingly, the point cloud reception device acquires the reconstructed point cloud data by performing the inverse projection. When the projection has not been performed, the inverse projection 2950 is skipped. The projection 2930 according to the embodiment can be referred to as a pre-processing of coordinate transformation for attribute decoding. The inverse projection 2950 according to the embodiment can be referred to as a post-processing of coordinate transformation for attribute decoding. The flowchart 2900 illustrates an example operation of the point cloud reception device, and the order of operations is not limited to this example. The operations represented by the elements of the flowchart 2900 according to the embodiment can be performed by hardware, software, and / or processes constituting the point cloud reception device, or a combination thereof.

[0459] FIG. 29 An example of the operation of the point cloud reception device is illustrated.

[0460] FIG. 13 The flowchart 3000 specifically illustrates FIG. 29 the operation of the point cloud data reception device of the flowchart 2900. The flowchart 3000 illustrates an example operation of the point cloud reception device. Accordingly, the order of operations of data processing of the point cloud reception device is not limited to this example. In addition, the operations represented by the elements of the flowchart 3000 according to the embodiment can be performed by hardware, software, and / or processes constituting the point cloud reception device, or a combination thereof.

[0461] The point cloud reception device outputs the geometry bitstream and the attribute bitstream by demultiplexing the bitstream. The point cloud reception device outputs the reconstructed geometry by performing entropy decoding 3001, dequantization 3002, and geometry decoding 3003 on the geometry bitstream. The entropy decoding 3001, the dequantization 3002, and the geometry decoding 3003 according to the embodiment can be referred to as geometry decoding or geometry processing, and correspond to the operations of the entropy decoder 13001, the dequantization processor 13002, and the geometry decoder 13003, respectively, with reference to FIG. 13. FIG. 24-28At least one or a combination of operations of the arithmetic decoder 13002, the occupancy code-based octree reconstruction processor 13003, the surface model processor (triangle reconstruction, upsampling, voxelization) 13004, and the inverse quantization processor 13005 is described.

[0462] The point cloud receiving apparatus performs entropy decoding 3010, dequantization 3011, and attribute decoding 3012 on the attribute bitstream and outputs reconstructed attributes (or decoded attributes). The entropy decoding 3010, dequantization 3011, and attribute decoding 3012 according to the embodiments can be referred to as attribute decoding or attribute processing, and correspond to the operations of the arithmetic decoder 13007, the inverse quantization processor 13008, and the prediction / lifting / RAHT inverse transform processor 13009 and the color inverse transform processor 13010 described with reference to FIG. 13B. FIG. 24-28 The attribute decoding 2940 described. In addition, the entropy decoding 3010, dequantization 3011, and attribute decoding 3012 according to the embodiments correspond to at least one or a combination of operations of the arithmetic decoder 13007, the inverse quantization processor 13008, and the prediction / lifting / RAHT inverse transform processor 13009 and the color inverse transform processor 13010 described above, but are not limited to the above-described examples.

[0463] As described with reference to FIG. 16 The signaling information according to the embodiments further includes signaling information (e.g., geo_projection_enable_flag, attr_projetion_enable_flag, attr_coord_conv_enable_flag, etc.) indicating whether to apply projection to each of the geometry and / or the attributes. Thus, the point cloud receiving apparatus according to the embodiments performs projection post-processing (3020) on the reconstructed geometry and the reconstructed attributes based on the signaling information described with reference to FIG. 29 The projection post-processing (3020) described is performed on the reconstructed geometry and the reconstructed attributes.

[0464] The projection post-processing 3020 according to the embodiments corresponds to the inverse of the projection pre-processing 1620 described with reference to FIG. 16 The projection pre-processing 1620 described with reference to FIG. 16A. The projection post-processing 3020 according to the embodiments corresponds to the inverse of the projection 2920 and the inverse projection 2950 described with reference to ​ The projection 2920 and the inverse projection 2950 described with reference to FIG. 29A. The lower dashed box in the figure shows a detailed operation flow of the projection post-processing 3020. As shown in the figure, the point cloud receiving apparatus performs the projection post-processing 3020 including projection 3021, projection index map generation 3022, and inverse projection 3023.

[0465] The point cloud receiving apparatus performs projection (3021) on the reconstructed geometry. The projection 3021 according to the embodiments corresponds to the inverse of the projection 1632 described with reference to ​ The inverse of the projection 1632 described with reference to FIG. 16B. When the point cloud transmitting apparatus has performed projection on the geometry, the reconstructed geometry indicates a position in the projected domain on the point cloud receiving apparatus. Thus, the point cloud receiving apparatus performs inverse projection (3023) on the projected geometry based on the signaling information (e.g., projection_id, projection_id2, etc.) described with reference to Figures 24-28The point cloud receiving device can perform re-projection of the projected geometry back to 3D space based on the signaling information related to the projection (e.g., coord_conversion_type, bounding_box_x_offset, etc.) described above. The point cloud receiving device can obtain the range of re-projection data, scaling information (e.g., bounding_box_x / y / z_length, granularity_radius / angular / normal, etc.) from the signaling information related to the projection described above. Figures 24-28 The point cloud receiving device can obtain the range of re-projection data, scaling information (e.g., bounding_box_x / y / z_length, granularity_radius / angular / normal, etc.) from the signaling information related to the projection described above.

[0466] The point cloud receiving device according to embodiments can obtain the range of re-projection data, scaling information (e.g., bounding_box_x / y / z_length, granularity_radius / angular / normal, etc.) from the signaling information related to the projection described above. Figures 24-28 The point cloud receiving device can check whether laser position adjustment has been performed at the transmitting side based on the signaling information related to the projection (e.g., laser_position_adjustment_flag, etc.) described above, and obtain information related to the laser position adjustment. The point cloud receiving device according to embodiments can perform re-projection reflecting the laser position adjustment based on the information related to the laser position adjustment. Figure 22 The point cloud receiving device can check whether laser position adjustment has been performed at the transmitting side based on the signaling information related to the projection (e.g., laser_position_adjustment_flag, etc.) described above, and obtain information related to the laser position adjustment. The point cloud receiving device according to embodiments can perform re-projection reflecting the laser position adjustment based on the information related to the laser position adjustment. Figures 24-28 The point cloud receiving device can check whether sampling rate adjustment (e.g., sampling rate adjustment 1643) has been performed at the transmitting side based on the signaling information related to the projection (e.g., sampling_adjustment_cubic_flag, etc.) described above, and obtain information related to the sampling rate adjustment. The point cloud receiving device according to embodiments can perform re-projection reflecting the laser position adjustment and the sampling rate adjustment. The projection, the laser position adjustment, and the sampling rate adjustment according to embodiments are the same as those described above with reference to FIGS. 16A and 16B, and thus detailed descriptions thereof will be omitted. Figures 21-23 The point cloud receiving device can check whether sampling rate adjustment has been performed at the transmitting side based on the signaling information related to the projection (e.g., sampling_adjustment_cubic_flag, etc.) described above, and obtain information related to the sampling rate adjustment. The point cloud receiving device according to embodiments can perform re-projection reflecting the laser position adjustment and the sampling rate adjustment. The projection, the laser position adjustment, and the sampling rate adjustment according to embodiments are the same as those described above with reference to FIGS. 16A and 16B, and thus detailed descriptions thereof will be omitted.

[0467] The point cloud receiving device can transform the coordinate system of the re-projected point cloud data (geometry) to the original coordinate system (e.g., xyz coordinate system 1800) based on the signaling information related to the projection (e.g., projection_type) described above with reference to FIG. 18. Figures 24-28 The point cloud receiving device can transform the coordinate system of the re-projected point cloud data (geometry) to the original coordinate system (e.g., xyz coordinate system 1800) based on the signaling information related to the projection (e.g., projection_type) described above with reference to FIG. 18. Figure 18 The point cloud receiving device can transform the coordinate system of the re-projected point cloud data (geometry) to the original coordinate system (e.g., xyz coordinate system 1800) based on the signaling information related to the projection (e.g., projection_type) described above with reference to FIG. 18. Figures 24-28 The point cloud receiving device can transform the coordinate system of the re-projected point cloud data (geometry) to the original coordinate system (e.g., xyz coordinate system 1800) based on the signaling information related to the projection (e.g., projection_type) described above with reference to FIG. 18. Figures 15-18Described, in the point cloud transmitting apparatus performs voxelization (e.g., projection domain voxelization 1644) and rounding, position error of points can occur. Thus, even when the point cloud receiving apparatus performs projection based on the signaling information, it can be difficult to losslessly reconstruct geometry. That is, even when attributes are losslessly reconstructed, unexpected error can occur because accurate matching between geometry and attributes fails due to loss of reconstructed geometry. When projection is applied only in attribute compilation, even when reconstructed attributes are not losslessly reconstructed, proper matching can be made by connecting reconstructed geometry to reconstructed attributes corresponding thereto. Thus, reconstructed point cloud data having reduced error can be obtained.

[0468] Thus, the point cloud receiving apparatus according to the embodiment performs projection index map generation 3022 to generate an index map indicating indices of position information in order to connect projected geometry to positions given before performing projection. The point cloud receiving apparatus organizes points represented by reconstructed geometry in a certain order (e.g., Morton code order, x-y-z zigzag order, etc.) with respect to reconstructed geometry, and assigns indices according to the order. The point cloud receiving apparatus can generate an index-to-decoded position (geometry) map and a decoded position (geometry)-to-index map based on a relationship between positions given before projection and indices. The point cloud receiving apparatus performs projection on geometry to which indices are assigned, and generates a decoded position-to-projected position (geometry) map. In addition, the point cloud receiving apparatus generates a projected position-to-index map based on a relationship between decoded positions and indices (e.g., the index-to-generated decoded position (geometry) map and the decoded position (geometry)-to-index map).

[0469] As described with reference to Figures 15-17 The point cloud transmitting apparatus performs attribute encoding based on projected geometry. Thus, reconstructed attributes are represented as attributes of geometry represented in the projection domain with reference to Figures 15-23 described.

[0470] When attribute decoding is performed, each point in the projection domain has attributes. Thus, the point cloud receiving apparatus performs inverse projection 3023, can reconstruct original geometry of projected geometry based on the projected position-to-index map and the index-to-position map, and can match reconstructed original geometry with reconstructed attributes. The projection index map generation 3022 according to the embodiment can be included in the inverse projection 3023.

[0471] Figure 31 An example of a processing order of the point cloud receiving apparatus is shown.

[0472] The flowchart 3100 shown in the diagram shows an example of a processing procedure of the point cloud receiving apparatus described with reference to Figures 29-30 The operation of the point cloud receiving apparatus is not limited to this example, and operations corresponding to respective elements can be performed in a different order or in parallel. Figure 31The order shown is performed, or can not be performed in order.

[0473] As described with reference to Figures 29-30 The point cloud receiving apparatus receives a point cloud bitstream as input and performs entropy decoding 3110, dequantization 3111, and geometry decoding 3112 on the geometry bitstream. The entropy decoding 3110, dequantization 3111, and geometry decoding 3112 according to the embodiments correspond to the geometry processing described with reference to Figure 30 and a detailed description thereof will be omitted. As described with reference to Figure 30 The point cloud receiving apparatus determines whether to perform projection based on the signaling information described with reference to Figures 24-28 and performs attribute decoding 3130 in the case where projection is not performed. When projection is performed, the point cloud receiving apparatus performs post-projection processing (e.g., the post-projection processing 3020 described with reference to Figure 30 The post-projection processing according to the embodiments is an example of the post-projection processing 3020 described with reference to Figure 30 and includes coordinate transformation 3120, coordinate projection 3121, translation adjustment 3122, bounding box adjustment 3123, projection domain voxelization 3124, and inverse projection 3125. The coordinate transformation 3120, coordinate projection 3121, translation adjustment 3122, bounding box adjustment 3123, and projection domain voxelization 3124 can correspond to the projection 3021 described with reference to Figure 30 As described with reference to Figure 30 The point cloud receiving apparatus can perform the translation adjustment 3122, the bounding box adjustment 3123, etc. based on information related to laser position adjustment (e.g., the laser position adjustment 1642), sampling rate adjustment (e.g., the sampling rate adjustment 1643), etc. included in the signaling information described with reference to Figures 24-28 The point cloud receiving apparatus performs the inverse projection 3125. Since the inverse projection 3125 according to the embodiments is the same as the inverse projection 3023 described with reference to Figure 30 and a detailed description thereof will be omitted.

[0474] Figure 32 An example of inverse projection is shown.

[0475] Figure 32 Projection index map generation 3022 is shown as an example of the post-projection processing according to the embodiments. Figures 30-31Examples of inverse projection are described. Solid line 3200 in the figure represents the operation of generating an index-to-decoded position map based on the relationship between the position and index given before projection. Dashed line 3210 in the figure represents the operation of generating a decoded position-to-index map. Solid line 3220 in the figure represents the operation of the point cloud receiving device performing projection on the index-assigned geometry and generating a decoded position-to-projection position map for the projected position (geometry) map. Additionally, dashed line 3230 in the figure represents the operation of the point cloud receiving device generating a projected position-to-index map based on the relationship between the decoded position and index (e.g., index-to-decoded position (geometry) map and decoded position (geometry)-to-index map). Inverse Projection and Reference Figure 30 The descriptions are identical, therefore their descriptions are omitted.

[0476] Figure 33 An example of the processing procedure of a point cloud receiving device according to an embodiment is shown.

[0477] The flowchart 3300 shown in the figure illustrates a reference. Figures 29-31 This describes an example of the processing procedure of a point cloud receiving device. The operation of the point cloud receiving device is not limited to this example and can be followed in other ways. Figure 33 The operations shown are executed in the order corresponding to the respective elements, or they may be executed out of order.

[0478] For reference Figures 29-30 As described, when referring to Figure 28 When the value of attr_coord_conv_enabled_flag is 1, the point cloud receiving device can perform coordinate transformation preprocessing 3310 as preprocessing for attribute decoding. The coordinate transformation preprocessing 3310 according to the embodiment can correspond to the reference... Figure 30 The projection 3021 is described. The operations represented by the elements of flowchart 3300 according to the embodiment can be performed by the hardware, software, and / or processes, or combinations thereof, constituting the point cloud receiving device. The point cloud receiving device is based on reference... Figures 24-28 The described projection-related signaling information is used to perform coordinate transformation preprocessing 3310. The position (geometric) of the point output in coordinate transformation preprocessing 3310 is used for subsequent attribute decoding 3320. The input (or input data) of coordinate transformation preprocessing 3310 according to the embodiment is configured as follows. The input according to the embodiment includes variables, which are derived from a reference... Figures 24-28 The signaling information described is obtained from or based on the projection-related information. Figures 24-28 The signaling information described is derived from the projection.

[0479] Array PointPos: A variable specifying the position of a point in Cartesian coordinates.

[0480] attr_coord_conv_enabled_flag (e.g., refer to Figure 28 attr_coord_conv_enabled_flag): specifies an indicator of whether coordinate transformation is used in the attribute compilation process.

[0481] The variable number_lasers specifies the number of lasers

[0482] The variable LaserAngle specifies the tangent of the laser elevation angle

[0483] The variable geomAngularOrigin specifies the (x, y, z) coordinates of the laser origin

[0484] The variable ScaleAxis specifies the scale factor for the coordinate transformation for each axis

[0485] The variable LaserCorrection specifies the correction of the laser position relative to geomAngularOrigin

[0486] The output of this process 3310 is the modified array PointPos and PointPosCart which specifies the link between the position before and after the coordinate transformation.

[0487] The coordinate transformation pre-processing 3310 according to embodiments can include a process to determine the laser index.

[0488] The process to determine the laser index laserIndex[pointIdx] for points that undergo coordinate transformation is described below, where pointIdx is in the range of 0 to PointCount-1. This applies only when attr_coord_conv_enabled_flag is equal to 1.

[0489] First, the estimate laserIndexEstimate[pointIdx] is computed by determining the node angle PointTheta as follows:

[0490] sPoint = (PointPos[pointIdx][0] - geomAngularOrigin[0]) « 8

[0491] tPoint = (PointPos[pointIdx][1] - geomAngularOrigin[1]) « 8

[0492] r2 = sPoint * sPoint + tPoint * tPoint

[0493] rInvLaser = 1 ÷ Sqrt(r2)

[0494] PointTheta = ((PointPos[pointIdx][2] - geomAngularOrigin[2]) x rInvLaser) » 14

[0495] and the closest laser angle to this point is determined as follows: LaserAngle[laserIndexEstimate[pointIdx]]:

[0496] start = 0

[0497] end = number_lasers - 1

[0498] for (int t = 0; t <= 4; t++) {

[0499] mid = (start + end) » 1

[0500] if (LaserAngle[mid] > PointTheta)

[0501] end = mid

[0502] else

[0503] start = mid

[0504] }

[0505] minDelta = Abs(LaserAngle[start] - PointTheta)

[0506] laserIndex[pointIdx] = start

[0507] for (j = start + 1; j <= end; j++) {

[0508] delta = Abs(LaserAngle[j] - PointTheta)

[0509] if (delta < minDelta) {

[0510] minDelta = delta

[0511] laserIndex[pointIdx] = j

[0512] }

[0513] }

[0514] The coordinate transformation pre-processing 3310 according to embodiments can include a coordinate transformation process.

[0515] At the start of the process, copy the position in the point position array in Cartesian coordinates to PointPosCart[pointIdx], where pointIdx is in the range 0 to PointCount-1, as follows:

[0516] PointPosCart[pointIdx][0] = PointPos[pointIdx][0]

[0517] PointPosCart[pointIdx][1] = PointPos[pointIdx][1]

[0518] PointPosCart[pointIdx][2] = PointPos[pointIdx][2]

[0519] The following process applies to transforming the coordinate axes from Cartesian to cylindrical coordinates for a point, where ConvPointPos[pointIdx] specifies the point position in the transformed cylindrical coordinates, where pointIdx is in the range 0 to PointCount-1.

[0520] ConvPointPos[pointIdx][0] = Sqrt(r2) » 8;

[0521] ConvPointPos[pointIdx][1] = (atan2(tPoint, sPoint) + 3294199) » 8;

[0522] ConvPointPos[pointIdx][2] = ((PointPos[pointIdx][2] - geomAngularOrigin[2] - LaserCorrection[laserIndex[pointIdx]]) * rInvLaser) » 22;

[0523] An updated PointPos is specified by a multiple of the scale factor on each axis. If ScaleAxis is a non-zero positive value, and the updated PointPos is derived as follows,

[0524] PointPos[pointIdx][0] = ((ConvPointPos[pointIdx][0] - MinPointPos[0]) * ScaleAxis[0]) » 8

[0525] PointPos[ pointIdx ][ 1 ] = ( ( ConvPointPos[ pointIdx ][ 1 ] - MinPointPos[ 1 ] ) x ScaleAxis[ 1 ] ) » 8

[0526] PointPos[ pointIdx ][ 2 ] = ( ( ConvPointPos[ pointIdx ][ 2 ] - MinPointPos[ 2 ] ) x ScaleAxis[ 2 ] ) » 8,

[0527] where MinPointPos is the minimum point position among the ConvPointPos[ pointIdx ], where pointIdx is in the range 0 to PointCount - 1.

[0528] If at least one of the elements of ScaleAxis is equal to 0, then ScaleAxis is derived from the bounding box. Let MaxPointPos be the maximum point position of the given ConvPointPos, the length of the bounding box along an axis, LengthBbox, can be defined as follows,

[0529] LengthBbox[ 0 ] = MaxPointPos[ 0 ] - MinPointPos[ 0 ]

[0530] LengthBbox[ 1 ] = MaxPointPos[ 1 ] - MinPointPos[ 1 ]

[0531] LengthBbox[ 2 ] = MaxPointPos[ 2 ] - MinPointPos[ 2 ]

[0532] and the maximum length among the three is defined as:

[0533] MaxLengthBbox = Max( LengthBbox[ 0 ], Max( LengthBbox[ 1 ],

[0534] LengthBbox[ 2 ] )

[0535] Then, ScaleAxis is derived as follows,

[0536] ScaleAxis[ 0 ] = MaxLengthBbox ÷ LengthBbox[ 0 ]

[0537] ScaleAxis[ 1 ] = MaxLengthBbox ÷ LengthBbox[ 1 ]

[0538] ScaleAxis[2] = MaxLengthBbox ÷ LengthBbox[2]

[0539] As described with reference to Figures 29-30 , the point cloud receiving apparatus performs attribute decoding 3320. Since the attribute decoding 3320 according to the embodiment is the same as the attribute decoding 2940 of Figure 29 , the attribute decoding described with reference to Figure 30 or the attribute processing, detailed description thereof will be omitted. The point cloud receiving apparatus performs attribute decoding and performs coordinate transformation post-processing to match attributes using point positions in a Cartesian coordinate system (3330). The input (or input data) of the coordinate transformation post-processing 3330 according to the embodiment is configured as follows. The input according to the embodiment includes variables that are derived from the projection-related signaling information described with reference to Figures 24-28 or are derived based on the projection-related signaling information described with reference to Figures 24-28 .

[0540] The indicator attr_coord_conv_enabled_flag specifies whether coordinate transformation is used in the attribute compilation process

[0541] An array PointsAttr having elements PointsAttr[pointIdx][cIdx], where pointIdx is in the range of 0 to PointCount - 1, and cIdx is in the range of 0 to AttrDim - 1

[0542] An array PointPosCart having elements PointPosCart[pointIdx], where pointIdx is in the range of 0 to PointCount - 1

[0543] The output of this process 3300 is an array PointsAttr having elements PointsAttr[pointIdx][cIdx], where each element with the index pointIdx of PointsAttr is associated with the position given by the array PointPosCart with the same index pointIdx.

[0544] Figure 34 is a flowchart illustrating a method of transmitting point cloud data according to the embodiment.

[0545] Figure 34 The flowchart 3400 of Figures 1-33 illustrates a point cloud data transmitting apparatus (or point cloud transmitting apparatus) by referring to the point cloud data transmitting apparatus (or point cloud transmitting apparatus) described with reference to Figure 1 , Figure 12 and Figure 14The described transmitting apparatus or point cloud encoder) transmits a method of point cloud data. The point cloud data transmitting apparatus encodes (3410) point cloud data containing geometry and attributes. The geometry is information indicating positions of points in the point cloud data, and the attributes include at least one of colors and reflectances of the points. The point cloud data transmitting apparatus encodes the geometry. As described with reference to Figures 1-33 The described attribute encoding relies on the geometry encoding. The point cloud transmitting apparatus according to the embodiments can perform coordinate transformation (for example, refer to Figures 15-17 The described projection). Details of the projection are the same as described with reference to Figures 15-33 The described, and thus the description thereof will be omitted. When the point cloud data is acquired by one or more lasers, the point cloud transmitting apparatus can adjust positions of the respective lasers based on a center position of a laser head outputting the one or more lasers and positions of the respective lasers with respect to the center position. The adjusted laser positions can include a vertical angle represented in a coordinate system representing positions of points. Since the laser position adjustment is the same as described with reference to Figures 15-22 The described, and thus the detailed description thereof will be omitted. The bitstream according to the embodiments contains signaling information related to the projection described with reference to Figures 24-28 The described. For example, the bitstream contains information indicating whether positions of the respective lasers have been adjusted (for example, refer to Figure 24 The described laser_position_adjustment_flag), information indicating a number of the one or more lasers (for example, refer to Figure 24 The described num_laser), and information related to the laser adjustment. In addition, the bitstream contains information indicating whether a coordinate transformation is applied to decode the encoded attributes (for example, refer to Figure 28 The described attr_coord_conv_enable_flag), and information about scale factors of coordinate axes of the transformation (for example, refer to Figure 28 The described attr_coord_conv_scale[i]).

[0546] The point cloud receiving apparatus can acquire such signaling information and perform the projection and the inverse projection, such as the laser position readjustment and the coordinate transformation. Since the operation of the point cloud data transmitting apparatus is the same as described with reference to Figures 1-23 The described, and thus the detailed description thereof will be omitted.

[0547] Figure 35 is a flowchart showing a method of processing point cloud data according to an embodiment.

[0548] Figure 35 The flowchart 3500 shows a method of processing point cloud data according to an embodiment. Figures 1-33The described point cloud data receiving apparatus (e.g., the receiving apparatus 10004 or the point cloud video decoder 10006) processes a method of point cloud data.

[0549] The point cloud data receiving apparatus (e.g., the receiver of Figure 1 , the receiver of Figure 13 , etc.) receives a bitstream (2510) containing point cloud data. The bitstream according to the embodiments contains signaling information (e.g., SPS, APS, attribute header, etc.) required to decode the point cloud data. As described with reference to Figures 24-28 , the point cloud transmitting apparatus according to the embodiments transmits signaling information related to projection (e.g., projection of Figures 15-33 ) through signaling information (e.g., SPS, APS, attribute header, etc.) contained in the bitstream. As described above, the signaling information (e.g., SPS, APS, attribute header, etc.) of the bitstream can contain projection-related information at a sequence level or a slice level.

[0550] The point cloud data receiving apparatus (e.g., the decoder of Figure 10 ) decodes the point cloud data based on the signaling information (2520). The point cloud data receiving apparatus (e.g., the geometry decoder of Figure 10 ) decodes geometry contained in the point cloud data. The point cloud data includes geometry and attributes. The geometry is information indicating a position of a point in the point cloud data, and the attributes include at least one of a color and a reflectance of the point.

[0551] The point cloud receiving apparatus according to the embodiments can perform coordinate transformation on the geometry and / or the attributes (e.g., coordinate transformation 3310, 3330 described with reference to Figures 15-33 . Details of the coordinate transformation are the same as described with reference to Figures 15-33 , and thus a description thereof will be omitted.

[0552] The bitstream according to the embodiments contains projection-related signaling information described with reference to Figures 24-28 . For example, the bitstream contains information indicating whether to adjust a position of each laser (e.g., laser_position_adjustment_flag described with reference to Figure 24 ), information indicating a number of one or more lasers (e.g., num_laser described with reference to Figure 24 ), and information related to laser adjustment. In addition, the bitstream contains information indicating whether to apply coordinate transformation to decode the attributes (e.g., attr_coord_conv_enable_flag described with reference to Figure 28 ), and information about a scale factor of a coordinate axis of the transformation (e.g., scale_factor described with reference to Figure 28The point cloud receiving device can adjust the positions of the respective lasers based on the information related to the laser adjustment. The position of the laser is a position adjusted based on a central position of a laser head outputting the one or more lasers and a position of the respective laser with respect to the central position, and includes a vertical angle represented in a coordinate system representing the position of the point. The point cloud data processing method is not limited to this example.

[0553] The configuration element of the apparatus for processing point cloud data as explained according to some embodiments can be implemented by hardware, software, firmware, or a combination thereof, including one or more processors connected to a memory. The configuration element of the apparatus according to some embodiments can be implemented by a chip, for example, a hardware circuit. Furthermore, the elements of the apparatus for processing point cloud data can be implemented by respective chips. In addition, the elements of the apparatus for processing point cloud data can be implemented by one or more processors executing one or more programs including instructions for performing one or more operations as explained above. Figures 1-35 Figures 1-35

[0554] The embodiments have been described from the perspective of the method and / or the apparatus, and the description of the method and the apparatus can be applied to complement each other.

[0555] Although the drawings have been described separately for the sake of simplicity, a new embodiment can be designed by merging the embodiments shown in the respective drawings. A computer-readable recording medium on which a program for executing the above-described embodiments is recorded, as required by those skilled in the art, also falls within the scope of the appended claims and equivalents thereof. The apparatus and method according to the embodiments can not be limited by the configurations and methods of the above-described embodiments. Various modifications can be made to the embodiments by selectively combining all or some of the embodiments. Although the 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 in the embodiments without departing from the spirit or scope of the disclosure described with reference to the appended claims. These modifications should not be individually understood from the technical idea or aspect of the embodiments.

[0556] ​​Various elements of the apparatus of the embodiments can be implemented by hardware, software, firmware, or a combination thereof. The various elements in the embodiments can be implemented by a single chip, for example, a single hardware circuit, according to the embodiments. According to the embodiments, components according to the embodiments can be implemented as separate chips, respectively. According to the embodiments, at least one of the components of the apparatus according to the embodiments can include one or more processors capable of executing one or more programs. The one or more programs can perform any one or more of the operations / methods according to the embodiments, or include instructions for performing the operations / methods. Executable instructions for performing the methods / operations of the apparatus according to the embodiments 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 transitory CRM or other computer program product configured to be executed by one or more processors. Furthermore, the memory according to the embodiments can be used as a concept that covers not only a volatile memory such as a RAM but also a non-volatile memory, a flash memory, and a PROM. Furthermore, it can also be implemented in the form of a carrier wave such as transmission over the Internet. Furthermore, the processor-readable recording medium can be distributed to computer systems connected over a network, so that the processor-readable code can be stored and executed in a distributed manner.

[0557] In this specification, the terms “ / ” and “,” are to be interpreted as “and / or”. For example, the expression “A / B” can refer to “A and / or B”. Also, “A, B” can refer to “A and / or B”. Also, “A / B / C” can refer to “at least one of A, B, and / or C”. Also, “A / B / C” can refer to “at least one of A, B, and / or C”. Also, in this specification, the term “or” is to be interpreted as “and / or”. For example, the expression “A or B” can mean 1) only A, 2) only B, or 3) both A and B. In other words, the term “or” used herein is to be interpreted as “additionally or alternatively”.

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

[0559] The terminology used to describe embodiments is for the purpose of describing particular embodiments and is not intended to be limiting of embodiments. As used in the description of embodiments and the claims, the singular forms "a," "an," and "the" include plural referents, unless the context clearly dictates otherwise. The expression "and / or" is used to include all possible combinations of the terms connected by the conjunction. Terms such as "including" or "having" are intended to mean that there are additions to the items, numbers, steps, elements, or components that are described, and that the additions are not excluded in the following description, claims, and accompanying drawings. As used herein, conditional language such as "if" and "when" is not construed as limiting the circumstances in which the associated action or actions can occur. Rather, the associated action or actions are intended to occur if, and only if, the condition is met.

[0560] Inventive Concepts

[0561] As described above, the relevant content has been described with reference to the best mode for implementing the embodiments.

[0562] Industrial Applicability

[0563] It will be apparent to those skilled in the art that various modifications and variations can be made in the embodiments without departing from the scope of the embodiments. Thus, it is intended that the embodiments cover the modifications and variations of this disclosure provided they come within the scope of the appended claims and their equivalents.

Claims

1. A method for transmitting point cloud data, the method comprising the following steps: The geometry of point cloud data is encoded, wherein the geometry is information indicating the position of points in the point cloud data; Encoding attributes of the point cloud data, wherein the attributes include at least one of the color and reflectivity of the points, wherein the step of encoding the attributes includes: transforming the coordinates of the attributes into coordinates including angles; and Send a bitstream containing encoded point cloud data. The bitstream includes transformation flag information and scaling information. The transformation flag information indicates whether the encoding of the attribute uses scaled coordinates that include the angle. The scaling information indicates a scaling factor used to scale each point in the coordinates that include the angle.

2. The method according to claim 1, wherein, Since the point cloud data was acquired using one or more lasers, the step of encoding the point cloud data further includes: The position of each laser is adjusted based on the center position of the laser head that outputs one or more lasers and the relative position of each laser with respect to the center position, wherein the adjusted position of each laser includes a vertical angle represented in the coordinate system representing the position of the point.

3. The method according to claim 2, wherein, The bitstream contains information indicating whether the position of each laser should be adjusted, as well as information indicating the number of the one or more lasers.

4. A device for transmitting point cloud data, the device comprising: An encoder configured to encode the geometry of point cloud data, wherein the geometry is information indicating the position of points in the point cloud data, and to encode attributes of the point cloud data, wherein the attributes include at least one of the color and reflectivity of the points, and wherein the coordinates of the attributes are transformed into coordinates including angles; and A transmitter configured to transmit a bitstream containing encoded point cloud data. The bitstream includes transformation flag information and scaling information. The transformation flag information indicates whether the encoding of the attribute uses scaled coordinates that include the angle. The scaling information indicates a scaling factor used to scale each point in the coordinates that include the angle.

5. The device according to claim 4, wherein, Based on the point cloud data being obtained through one or more lasers, the encoder adjusts the position of each laser based on the center position of the laser head that outputs the one or more lasers and the relative position of each laser with respect to the center position, wherein the adjusted position of each laser includes a vertical angle represented in the coordinate system representing the position of the point.

6. The device according to claim 5, wherein, The bitstream contains information indicating whether the position of each laser should be adjusted, as well as information indicating the number of the one or more lasers.

7. A method for processing point cloud data, the method comprising the following steps: Receive a bitstream containing point cloud data; Decoding the geometry of the point cloud data, wherein the geometry is information indicating the position of points in the point cloud data; and Decoding the attributes of the point cloud data, wherein the attributes include at least one of the color and reflectivity of the points, and wherein the step of decoding the attributes includes: transforming the coordinates of the attributes into coordinates including angles. The bitstream includes transformation flag information and scaling information. The transformation flag information indicates whether the encoding of the attribute uses scaled coordinates that include the angle. The scaling information indicates a scaling factor used to scale each point in the coordinates that include the angle.

8. The method according to claim 7, wherein, The signaling information includes information indicating whether to adjust the position of each laser and information indicating the number of one or more lasers used to acquire the point cloud data.

9. The method according to claim 8, wherein, The steps for decoding the point cloud data include: The position of each laser is adjusted based on information indicating whether to adjust the position of each laser and information indicating the number of the one or more lasers. The position of each laser is adjusted based on the center position of the laser head that outputs the one or more lasers and the relative position of each laser with respect to the center position, and the position includes the vertical angle represented in the coordinate system representing the position of the point.

10. An apparatus for processing point cloud data, the apparatus comprising: A receiver configured to receive a bitstream containing point cloud data; as well as Decoder, the decoder is configured to: The geometry of the point cloud data is decoded, wherein the geometry is information indicating the position of points in the point cloud data, and The attributes of the point cloud data are decoded, wherein the attributes include at least one of the color and reflectivity of the points. The coordinates of the attribute are transformed into coordinates that include angles. The bitstream includes transformation flag information and scaling information. The transformation flag information indicates whether the encoding of the attribute uses scaled coordinates that include the angle. The scaling information indicates a scaling factor used to scale each point in the coordinates that include the angle.

11. The apparatus according to claim 10, wherein, The signaling information includes information indicating whether to adjust the position of each laser to adjust the coordinates of the position representing the point, and information indicating the number of one or more lasers.

12. The apparatus according to claim 11, wherein, The decoder adjusts the position of each laser based on information indicating whether to adjust the position of each laser and information indicating the number of the one or more lasers. The position of each laser is adjusted based on the center position of the laser head that outputs the one or more lasers and the relative position of each laser with respect to the center position, and the position includes the vertical angle represented in the coordinate system representing the position of the point.