Method for encoding, decoding and sending point cloud data

By improving G-PCC technology and adopting parallel processing and appropriate predictor candidate methods, the efficiency and complexity problems in point cloud data transmission are solved, and efficient point cloud data compression and decoding are achieved.

CN119815003APending Publication Date: 2025-04-11LG ELECTRONICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411966233.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-10-03
Filing Date
2020-10-05
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

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

Method used

By improving geometry-based point cloud compression (G-PCC) technology, point cloud data is encoded and decoded using parallel processing and appropriate predictor candidate methods.

Benefits of technology

Improves the compression efficiency and encoding/decoding performance of point cloud data, and reduces waiting time and complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119815003A_ABST
    Figure CN119815003A_ABST
Patent Text Reader

Abstract

Methods of encoding, decoding and transmitting point cloud data are disclosed. The method can comprise the following steps: acquiring point cloud data; encoding geometric information including positions of points in the point cloud data; encoding attribute information including attribute values of points in the point cloud data based on the geometric information; and sending the coded geometric information, the coded attribute information and the coded signaling information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with the original application number 202080069482.X (International application number: PCT / KR2020 / 013491, application date: October 5, 2020, invention name: Point cloud data sending device and method, point cloud data receiving device and method). Technical Field

[0002] Embodiments relate to methods and apparatus for processing point cloud content. Background Art

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

[0004] Technical issues

[0005] The purpose of the present disclosure designed to solve the above-mentioned problems is to provide a point cloud data sending device, a point cloud data sending method, a point cloud data receiving device and a point cloud data receiving method for efficiently sending and receiving point clouds.

[0006] Another object of the present disclosure is to provide a point cloud data sending device, a point cloud data sending method, a point cloud data receiving device and a point cloud data receiving method for coping with waiting time and encoding / decoding complexity.

[0007] Another object of the present disclosure is to provide a point cloud data sending device, a point cloud data sending method, a point cloud data receiving device and a point cloud data receiving method for improving the compression performance of a point cloud by improving the encoding technology of attribute information of geometry-based point cloud compression (G-PCC).

[0008] Another object of the present disclosure is to provide a point cloud data sending device, a point cloud data sending method, a point cloud data receiving device and a point cloud data receiving method for enhancing compression efficiency while supporting parallel processing of attribute information of G-PCC.

[0009] Another object of the present disclosure is to provide a point cloud data sending device, a point cloud data sending method, a point cloud data receiving device and a point cloud data receiving method for reducing the size of an attribute bit stream and enhancing the compression efficiency of the attribute by proposing a method for selecting an appropriate predictor candidate among predictor candidates when encoding attribute information of a G-PCC.

[0010] The objects of the present disclosure are not limited to the objects mentioned above, and other objects of the present disclosure not mentioned above will become clear to those skilled in the art after reviewing the following description.

[0011] Solution to the problem

[0012] To achieve these objectives and other advantages and in accordance with the purposes of the present disclosure, as implemented and broadly described herein, a method for sending point cloud data may include the following steps: acquiring point cloud data, encoding geometric information including the positions of points in the point cloud data, encoding attribute information including attribute values ​​of points in the point cloud data based on the geometric information; and sending the encoded geometric information, the encoded attribute information and signaling information.

[0013] According to an embodiment, encoding the attribute information includes the following steps: generating predictor candidates based on the nearest neighboring points of the point to be encoded, obtaining a score for each predictor candidate and setting the prediction mode corresponding to the predictor candidate with the smallest score as the prediction mode of the point, and encoding the prediction mode of the point and the residual attribute value of the point obtained based on the prediction mode of the point.

[0014] According to an embodiment, the maximum difference between the attribute values ​​of the nearest neighboring points is equal to or greater than a threshold.

[0015] According to an implementation manner, the attribute information is encoded to set one of prediction mode 1, prediction mode 2 or prediction mode 3 as the prediction mode of the point, the predicted attribute value of the point under the prediction mode 1 is determined based on the attribute value of the first nearest neighboring point among the nearest neighboring points, the predicted attribute value of the point under the prediction mode 2 is determined based on the attribute value of the second nearest neighboring point among the nearest neighboring points, and the predicted attribute value of the point under the prediction mode 3 is determined based on the attribute value of the third nearest neighboring point among the nearest neighboring points.

[0016] According to an embodiment, encoding the property information obtains the score of each predictor candidate based on each residual property value obtained by applying each of the prediction mode 1, the prediction mode 2, and the prediction mode 3.

[0017] According to an embodiment, encoding the attribute information further includes the following steps: when the maximum difference between the attribute values ​​of the nearest neighboring points is less than the threshold, setting a predefined prediction mode as the prediction mode of the point, and encoding the residual attribute value obtained based on the set prediction mode.

[0018] According to an embodiment, the predefined prediction mode is prediction mode 0, and the predicted attribute value of the point under prediction mode 0 is determined by a weighted average value of the nearest neighboring points based on distance.

[0019] According to an embodiment, a point cloud data sending device may include: an acquisition unit, which is used to acquire point cloud data; a geometry encoder, which is used to encode geometric information including the positions of points in the point cloud data; an attribute encoder, which is used to encode attribute information including attribute values ​​of points in the point cloud data based on the geometric information; and a transmitter, which is used to send the encoded geometric information, the encoded attribute information and signaling information.

[0020] According to an implementation manner, the attribute encoder generates predictor candidates based on the nearest neighboring points of the point to be encoded, obtains a score for each predictor candidate, sets the prediction mode corresponding to the predictor candidate with the smallest score as the prediction mode of the point, and encodes the prediction mode of the point and the residual attribute value of the point obtained based on the prediction mode of the point.

[0021] According to an embodiment, the maximum difference between the attribute values ​​of the nearest neighboring points is equal to or greater than a threshold.

[0022] According to an embodiment, the attribute encoder sets one of prediction mode 1, prediction mode 2 or prediction mode 3 as the prediction mode of the point, the predicted attribute value of the point under prediction mode 1 is determined based on the attribute value of the first nearest neighboring point among the nearest neighboring points, the predicted attribute value of the point under prediction mode 2 is determined based on the attribute value of the second nearest neighboring point among the nearest neighboring points, and the predicted attribute value of the point under prediction mode 3 is determined based on the attribute value of the third nearest neighboring point among the nearest neighboring points.

[0023] According to an embodiment, the property encoder obtains the score of each predictor candidate based on each residual property value obtained by applying each of the prediction mode 1 , the prediction mode 2 , and the prediction mode 3 .

[0024] According to an embodiment, the attribute encoder further sets a predefined prediction mode as a prediction mode for the point when the maximum difference between the attribute values ​​of the nearest neighboring points is less than the threshold, and encodes the residual attribute value obtained based on the set prediction mode.

[0025] According to an embodiment, the predefined prediction mode is prediction mode 0, and the predicted attribute value of the point under prediction mode 0 is determined by a weighted average value of the nearest neighboring points based on distance.

[0026] According to an embodiment, a point cloud data receiving device may include: a receiver for receiving geometric information, attribute information and signaling information; a geometry decoder for decoding the geometric information based on the signaling information and restoring the position of the point; an attribute decoder for decoding the attribute information based on the signaling information and the geometric information, and restoring the attribute value of the point; and a renderer for rendering the point cloud data restored based on the position and attribute value of the point.

[0027] According to an embodiment, the attribute decoder obtains a prediction mode of a point to be decoded, obtains a predicted attribute value of the point based on the prediction mode of the point, and restores the attribute value of the point based on the predicted attribute value of the point in the attribute information and the residual attribute value of the point.

[0028] According to an embodiment, when the maximum difference between the attribute values ​​of the nearest neighboring points of the point is equal to or greater than a threshold, the attribute decoder obtains the prediction mode of the point from the attribute information, and the obtained prediction mode of the point is one of prediction mode 1, prediction mode 2 or prediction mode 3.

[0029] According to an embodiment, the predicted attribute value of the point under the prediction mode 1 is determined based on the attribute value of the first nearest neighboring point among the nearest neighboring points, the predicted attribute value of the point under the prediction mode 2 is determined based on the attribute value of the second nearest neighboring point among the nearest neighboring points, and the predicted attribute value of the point under the prediction mode 3 is determined based on the attribute value of the third nearest neighboring point among the nearest neighboring points.

[0030] According to an embodiment, when the maximum difference between the property values ​​of the nearest neighboring points is less than the threshold, the prediction mode of the point is a predefined prediction mode, and the residual property value obtained based on the set prediction mode is encoded.

[0031] According to an embodiment, the predefined prediction mode is prediction mode 0, and the predicted attribute value of the point under prediction mode 0 is determined by a weighted average value of the nearest neighboring points based on distance.

[0032] Advantageous Effects of the Invention

[0033] The point cloud data sending method, point cloud data sending device, point cloud data receiving method and point cloud receiving device according to the embodiments can provide high-quality point cloud services.

[0034] The point cloud data transmitting method, the point cloud data transmitting device, the point cloud data receiving method, and the point cloud receiving device according to the embodiments may implement various video encoding methods.

[0035] The point cloud data transmitting method, the point cloud data transmitting device, the point cloud data receiving method, and the point cloud receiving device according to the embodiments can provide general point cloud content such as an automatic driving service (or autonomous driving service).

[0036] The point cloud data transmitting method, the point cloud data transmitting device, the point cloud data receiving method, and the point cloud data receiving device according to the embodiments can perform spatial adaptive division of point cloud data for independent encoding and decoding of point cloud data, thereby improving parallel processing and providing scalability.

[0037] According to the implementation manner, the point cloud data sending method, the point cloud data sending device, the point cloud data receiving method and the point cloud data receiving device can perform encoding and decoding by spatially dividing the point cloud data in units of tiles and / or slices and thus the necessary signal data, thereby improving the encoding and decoding performance of the point cloud.

[0038] The point cloud data sending method, point cloud data sending device, point cloud data receiving method and point cloud data receiving device according to the implementation manner can change the method of selecting the most suitable predictor among predictor candidates when encoding attribute information, thereby reducing the bit stream size of the attribute information and enhancing the compression efficiency of the attribute information.

[0039] When the maximum difference between the attribute values ​​of neighboring points registered in the predictor of the corresponding point is greater than or equal to a preset threshold, the point cloud data transmitting method, point cloud data transmitting device, point cloud data receiving method, and point cloud data receiving device according to the embodiment can reduce the size of the attribute bitstream including the residual attribute value by not allowing the prediction mode for predicting the attribute value by weighted average calculation to be set as the prediction mode of the point. Thus, the compression efficiency of the attribute can be enhanced. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] The accompanying drawings are included to provide a further understanding of the present disclosure and are incorporated in and constitute a part of this application, illustrate embodiments of the present disclosure and together with the description serve to explain the principles of the present disclosure. In the drawings:

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

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

[0043] Figure 3An exemplary process of capturing point cloud video according to an embodiment is illustrated.

[0044] Figure 4 An exemplary block diagram of a point cloud video encoder according to an embodiment is illustrated.

[0045] Figure 5 An example of voxels in a 3D space according to an embodiment is illustrated.

[0046] Figure 6 Examples of octrees and occupancy codes according to embodiments are illustrated.

[0047] Figure 7 An example of a neighboring node pattern according to an embodiment is illustrated.

[0048] Figure 8 An example of point configuration of point cloud content for each LOD according to an embodiment is illustrated.

[0049] Fig. 9 An example of point configuration of point cloud content for each LOD according to an embodiment is illustrated.

[0050] Fig.10 An example of a block diagram of a point cloud video decoder according to an embodiment is illustrated.

[0051] Fig.11 An example of a point cloud video decoder according to an embodiment is illustrated.

[0052] Fig.12 A configuration of point cloud video encoding of a transmitting device according to an embodiment is illustrated.

[0053] Fig.13 A configuration of point cloud video decoding of a receiving device according to an embodiment is illustrated.

[0054] Fig.14 An exemplary structure operably connectable with a method / apparatus for transmitting and receiving point cloud data according to an embodiment is illustrated.

[0055] Fig.15 An example of a point cloud transmitting device according to an embodiment is illustrated.

[0056] Fig.16 (a) to Fig.16 (c) illustrates an implementation of segmenting the bounding box into one or more tiles.

[0057] Fig.17 Examples of a geometry encoder and an attribute encoder according to an embodiment are illustrated.

[0058] Fig.18 is a flowchart of a method of setting a prediction mode according to an embodiment.

[0059] Fig.19 is a flowchart of a method for setting a prediction mode according to another embodiment.

[0060] Fig. 20 An example of a point cloud receiving device according to an embodiment is illustrated.

[0061] Fig.21 Examples of a geometry decoder and an attribute decoder according to an embodiment are illustrated.

[0062] Fig. 22 An exemplary bitstream structure for transmitting / receiving point cloud data according to an embodiment is illustrated.

[0063] Fig.23 An exemplary bitstream structure for point cloud data according to an embodiment is illustrated.

[0064] Fig.24 The connection relationship between components in a bit stream of point cloud data according to an embodiment is illustrated.

[0065] Fig.25 An embodiment of a syntax structure of a sequence parameter set according to an embodiment is illustrated.

[0066] Fig.26 An implementation of a syntax structure of a geometry parameter set according to an implementation is illustrated.

[0067] Fig. 27 An embodiment of a syntax structure of a property parameter set according to an embodiment is illustrated.

[0068] Fig.28 An embodiment of a syntax structure of a tile parameter set according to an embodiment is illustrated.

[0069] Fig.29 An implementation of the syntax structure of a geometry slice bitstream() according to an implementation is illustrated.

[0070] Fig.30 An embodiment of a syntax structure of a geometry slice header according to an embodiment is illustrated.

[0071] Fig.31 An embodiment of a syntax structure of geometry slice data according to an embodiment is illustrated.

[0072] Fig.32 An embodiment of a syntax structure of an attribute slice bitstream() according to an embodiment is illustrated.

[0073] Fig.33 An embodiment of a syntax structure of an attribute slice header according to an embodiment is illustrated.

[0074] Fig.34 An embodiment of a syntax structure of attribute slice data according to an embodiment is illustrated.

[0075] Fig.35 is a flow chart of a method of transmitting point cloud data according to an embodiment.

[0076] Fig.36 is a flowchart of a method of receiving point cloud data according to an embodiment. DETAILED DESCRIPTION

[0077] Now, a description will be given in detail according to the exemplary embodiments disclosed herein with reference to the accompanying drawings. For the purpose of brief description with reference to the accompanying drawings, the same reference numerals may be provided for the same or equivalent components, and their descriptions will not be repeated. It should be noted that the following examples are only used to embody the present disclosure and do not limit the scope of the present disclosure. What can be easily inferred from the detailed description and examples of the present disclosure by experts in the technical field to which the present invention belongs will be interpreted as being within the scope of the present disclosure.

[0078] The detailed description in this specification should be interpreted in all aspects as illustrative rather than restrictive. The scope of the present disclosure should be determined by the appended claims and their legal equivalents, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced herein.

[0079] Now, reference will be made in detail to the preferred embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. The detailed description given below with reference to the accompanying drawings is intended to explain the 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 to provide a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure can be practiced without these specific details. Although most of the terms used in this specification have been selected from the general terms widely used in the art, the applicant has arbitrarily selected some terms, and their meanings will be explained in detail as needed in the following description. Therefore, the present disclosure should be understood based on the original meaning of the terms rather than their simple names or meanings. In addition, the following drawings and detailed descriptions should not be interpreted as being limited to the embodiments specifically described, but should be interpreted as including equivalents or substitutes of the embodiments described in the drawings and detailed descriptions.

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

[0081] Figure 1The point cloud content providing system illustrated in the example may include a transmitting device 10000 and a receiving device 10004. The transmitting device 10000 and the receiving device 10004 can perform wired or wireless communication to transmit and receive point cloud data.

[0082] The point cloud data sending device 10000 according to an embodiment can protect and process the point cloud video (or point cloud content), and send the point cloud video (or point cloud content). According to an embodiment, the sending device 10000 may include a fixed station, a base station 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 sending device 10000 may include a device configured to communicate with a base station and / or other wireless devices using a radio access technology (e.g., 5G new RAT (NR), long term evolution (LTE)), a robot, a vehicle, an AR / VR / XR device, a portable device, a home appliance, an Internet of Things (IoT) device, and an AI device / server.

[0083] According to the implementation manner, the sending device 10000 includes a point cloud video acquisition unit 10001, a point cloud video encoder 10002 and / or a transmitter (or communication module) 10003.

[0084] The point cloud video acquisition unit 10001 according to the embodiment acquires the point cloud video through a processing process such as capturing, synthesizing or generating. The point cloud video is a point cloud content represented by a point cloud as a collection of points in a 3D space, and can be referred to as point cloud video data. The point cloud video according to the embodiment may include one or more frames. A frame represents a still image / picture. Therefore, the point cloud video may include a point cloud image / frame / picture, and may be referred to as a point cloud image, frame or picture.

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

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

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

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

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

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

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

[0092] The head orientation information according to the embodiment is information about the user's head position, orientation, angle, movement, etc. The receiving device 10004 according to the embodiment can calculate the viewport information based on the head orientation information. The viewport information can be information about the area of ​​the point cloud video that the user is watching. The viewpoint is the point through which the user is watching the point cloud video, and can refer to the center point of the viewport area. That is, the viewport is an area centered on the viewpoint, and the size and shape of the area can be determined by the field of view (FOV). Therefore, in addition to the head orientation information, the receiving device 10004 can also extract the viewport information based on the vertical or horizontal FOV supported by the device. In addition, the receiving device 10004 performs gaze analysis, etc. to check the way the user consumes the point cloud, the area where the user gazes in the point cloud video, the gaze time, etc. According to the embodiment, the receiving device 10004 can send feedback information including the gaze analysis result to the sending device 10000. The feedback information according to the embodiment can be obtained in the rendering and / or display process. The feedback information according to an embodiment may be protected by one or more sensors included in the receiving device 10004. According to an embodiment, the feedback information may be protected by the renderer 10007 or a separate external element (or device, component, etc.).

[0093] Figure 1 The dotted line in represents the process of sending feedback information protected by the renderer 10007. The point cloud content providing system can process (encode / decode) the point cloud data based on the feedback information. Therefore, the point cloud video decoder 10006 can perform a decoding operation based on the feedback information. The receiving device 10004 can send the feedback information to the sending device 10000. The sending device 10000 (or the point cloud video encoder 10002) can perform an encoding operation based on the feedback information. Therefore, the point cloud content providing system can efficiently process necessary data (for example, point cloud data corresponding to the user's head position) based on the feedback information instead of processing (encoding / decoding) the entire point cloud data, and provide point cloud content to the user.

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

[0095] (Through a series of processes of obtaining / encoding / sending / decoding / rendering) according to the implementation Figure 1 The point cloud data processed in the point cloud content providing system may be referred to as point cloud content data or point cloud video data. According to an embodiment, point cloud content data may be used as a concept covering metadata or signaling information related to point cloud data.

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

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

[0098] Figure 2 The block diagram shows Figure 1 The operation of the point cloud content providing system described in . As described above, the point cloud content providing system can process point cloud data based on point cloud compression coding (e.g., G-PCC).

[0099] According to the embodiment, the point cloud content providing system (e.g., the point cloud sending device 10000 or the point cloud video acquisition unit 10001) can acquire a point cloud video (20000). The point cloud video is represented by a point cloud belonging to a coordinate system for representing a 3D space. According to the embodiment, the point cloud video may 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 may include one or more Ply files. The Ply file contains point cloud data such as point geometry and / or attributes. The geometry includes the position of the point. The position of each point can be represented by a parameter (e.g., the value of the X, Y and Z axes) representing a three-dimensional coordinate system (e.g., a coordinate system consisting of X, Y and Z axes). Attributes include attributes of the point (e.g., information about the texture, color (YCbCr or RGB), reflectivity r, transparency, etc. of each point). A point has one or more attributes. For example, a point may have an attribute as a color or two attributes as color and reflectivity.

[0100] Depending on the implementation, the geometry may be referred to as a position, geometry information, geometry data, etc., and the attributes may be referred to as attributes, attribute information, attribute data, etc.

[0101] The point cloud content providing system (eg, the point cloud sending device 10000 or the point cloud video acquiring unit 10001) can protect the point cloud data from the information related to the acquisition process of the point cloud video (eg, depth information, color information, etc.).

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

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

[0104] According to the embodiment, the point cloud content providing system (e.g., the receiving device 10004 or the receiver 10005) can receive a bit stream containing the encoded point cloud data. In addition, the point cloud content providing system (e.g., the receiving device 10004 or the receiver 10005) can demultiplex the bit stream.

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

[0106] According to the embodiment, the point cloud content providing system (e.g., the receiving device 10004 or the renderer 10007) can render the decoded point cloud data (20004). The point cloud content providing system (e.g., the receiving device 10004 or the renderer 10007) can use various rendering methods to render the geometric structure and attributes decoded by the decoding process. The points in the point cloud content can be rendered as vertices with a certain thickness, a cube with a specific minimum size centered on the corresponding vertex position, or a circle centered on the corresponding vertex position. All or part of the rendered point cloud content is provided to the user through a display (e.g., a VR / AR display, a common display, etc.).

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

[0108] Figure 3 An exemplary process of capturing point cloud video according to an embodiment is illustrated.

[0109] Figure 3 Reference Figure 1 to Figure 2 An exemplary point cloud video capture process for a point cloud content providing system is described.

[0110] 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.). Therefore, a point cloud content providing system according to an embodiment may use one or more cameras (e.g., an infrared camera capable of protecting depth information, an RGB camera capable of extracting color information corresponding to the depth information, etc.), a projector (e.g., an infrared pattern projector for protecting depth information), LiDRA, etc. to capture point cloud videos. A point cloud content providing system according to an embodiment may extract the shape of a geometric structure composed of points in a 3D space from the depth information, and extract the attributes of each point from the color information to protect the point cloud data. Images and / or videos according to an embodiment may be captured based on at least one of an inward-facing technology and an outward-facing technology.

[0111] Figure 3The left portion of exemplifies an inward-facing technique. An inward-facing technique refers to a technique of capturing an image of a central object with one or more cameras (or camera sensors) disposed around the central object. The inward-facing technique can be used to generate point cloud content that provides a 360-degree image of a key object to a user (e.g., VR / AR content that provides a 360-degree image of an object (e.g., a key object such as a character, player, object, or actor) to a user).

[0112] Figure 3 The right portion of exemplifies an outward facing technique. An outward facing technique refers to a technique in which the environment of a central object rather than an image of the central object is captured using one or more cameras (or camera sensors) disposed around the central object. Point cloud content for providing a surrounding environment as it appears from the user's perspective (e.g., content representing an external environment that can be provided to a user of an autonomous vehicle) can be generated using an outward facing technique.

[0113] like Figure 3 As shown in , point cloud content can be generated based on the capture operation of one or more cameras. In this case, the coordinate system is different in each camera, so the point cloud content providing system can calibrate one or more cameras to set the global coordinate system before the capture operation. In addition, the point cloud content providing system can generate point cloud content by synthesizing any image and / or video with the image and / or video captured by the above-mentioned capture technology. The point cloud content providing system may not perform when it generates point cloud content representing a virtual space. Figure 3 The point cloud content providing system according to the embodiment may perform post-processing on the captured image and / or video. In other words, the point cloud content providing system may remove unnecessary areas (e.g., background), identify the space to which the captured image and / or video is connected, and perform an operation of filling the space hole when there is a space hole.

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

[0115] Figure 4 An exemplary point cloud video encoder according to an embodiment is illustrated.

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

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

[0118] According to an embodiment, the point cloud video encoder includes a coordinate transformation unit 40000, a quantization unit 40001, an octree analysis unit 40002, a surface approximation analysis unit 40003, an arithmetic encoder 40004, a geometric reconstruction unit 40005, a color transformation unit 40006, an attribute transformation unit 40007, a RAHT unit 40008, an LOD generation unit 40009, a lifting transformation unit 40010, a coefficient quantization unit 40011 and / or an arithmetic encoder 40012.

[0119] The coordinate transformation unit 40000, the quantization unit 40001, the octree analysis unit 40002, the surface approximation analysis unit 40003, the arithmetic encoder 40004 and the geometric reconstruction unit 40005 may perform geometric coding. The geometric coding according to the embodiment may include octree geometric coding, direct coding, trisoup geometric coding and entropy coding. Direct coding and trisoup geometric coding are applied selectively or in combination. Geometric coding is not limited to the above examples.

[0120] As shown in the figure, the coordinate transformation unit 40000 according to the embodiment receives the position and transforms it into coordinates. For example, the position can be transformed into position information in a three-dimensional space (e.g., a three-dimensional space represented by an XYZ coordinate system). The position information in the three-dimensional space according to the embodiment can be referred to as geometric information.

[0121] The quantization unit 40001 according to the embodiment quantizes the geometric information. For example, the quantization unit 40001 can quantize the points based on the minimum position value of all points (e.g., the minimum value on each of the X, Y, and Z axes). The quantization unit 40001 performs the following quantization operation: the difference between the position value of each point and the minimum position value is multiplied by a preset quantization scaling value, and then the nearest integer value is found by rounding the value obtained by the multiplication. Therefore, one or more points can have the same quantized position (or position value). The quantization unit 40001 according to the embodiment performs voxelization based on the quantized position to reconstruct the quantized point. Voxelization means the smallest unit representing position information in 3D space. The points of the point cloud content (or 3D point cloud video) according to the embodiment can be included in one or more voxels. The term voxel, which is a compound word of volume and pixel, refers to a 3D cubic space generated when the 3D space is divided into units (unit = 1.0) based on the axes representing the 3D space (e.g., X-axis, Y-axis, and Z-axis). The quantization unit 40001 may match a group of points in a 3D space with a voxel. According to an embodiment, a voxel may include only one point. According to an embodiment, a voxel may include one or more points. In order to represent a voxel as a point, the position of the center point of the voxel may be set based on the position of one or more points included in the voxel. In this case, the properties of all positions included in a voxel may be combined and assigned to the voxel.

[0122] The octree analysis unit 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 with voxels based on the octree structure.

[0123] The surface approximation analysis unit 40003 according to the embodiment may analyze and approximate the 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.

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

[0125] The color transform unit 40006, the attribute transform unit 40007, the RAHT unit 40008, the LOD generation unit 40009, the lifting transform unit 40010, the coefficient quantization unit 40011 and / or the arithmetic encoder 40012 perform attribute coding. As described above, a point may have one or more attributes. The attribute coding according to the embodiment is also applied to the attributes of a point. However, when the attribute (e.g., color) includes one or more elements, the attribute coding is applied independently to each element. The attribute coding according to the embodiment includes color transform coding, attribute transform coding, regional adaptive hierarchical transform (RAHT) coding, interpolation-based hierarchical nearest neighbor prediction (prediction transform) coding, and interpolation-based hierarchical nearest neighbor prediction coding with an update / lifting step (lifting transform). Depending on the point cloud content, the above-mentioned RAHT coding, prediction transform coding, and lifting transform coding can be selectively used, or a combination of one or more coding schemes can be used. The attribute coding according to the embodiment is not limited to the above examples.

[0126] The color conversion unit 40006 according to an embodiment performs color conversion encoding of the color value (or texture) included in the conversion attribute. For example, the color conversion unit 40006 can convert the format of the color information (e.g., from RGB to YCbCr). The operation of the color conversion unit 40006 according to an embodiment can be optionally applied according to the color value included in the attribute.

[0127] The geometry reconstruction unit 40005 according to the embodiment reconstructs (decompresses) the octree and / or the approximate octree. The geometry reconstruction unit 40005 reconstructs the octree / voxel based on the result of analyzing the distribution of the points. The reconstructed octree / voxel may be referred to as a reconstructed geometry structure (restored geometry structure).

[0128] The attribute transformation unit 40007 according to the embodiment performs attribute transformation to transform the attribute based on the position and / or the reconstructed geometry where geometric coding is not performed. As described above, since the attribute depends on the geometry, the attribute transformation unit 40007 can transform the attribute based on the reconstructed geometry information. For example, based on the position value of the point included in the voxel, the attribute transformation unit 40007 can transform the attribute of the point at the position. As described above, when the position of the voxel center is set based on the position of one or more points included in the voxel, the attribute transformation unit 40007 transforms the attributes of the one or more points. When triangulated geometry coding is performed, the attribute transformation unit 40007 can transform the attribute based on triangulated geometry coding.

[0129] The attribute transformation unit 40007 can perform attribute transformation by calculating the average value of the attributes or attribute values ​​(e.g., the color or reflectivity of each point) of neighboring points within a specific position / radius from the position (or position value) of the center of each voxel. The attribute transformation unit 40007 can apply a weight according to the distance from the center to each point when calculating the average value. Therefore, each voxel has a position and a calculated attribute (or attribute value).

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

[0131] As shown in the figure, the transformed attributes are input to the RAHT unit 40008 and / or the LOD generation unit 40009.

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

[0133] The LOD generation unit 40009 according to the embodiment generates a level of detail (LOD). The LOD according to the embodiment is the detail level of the point cloud content. As the LOD value decreases, it indicates that the detail level of the point cloud content decreases. As the LOD value increases, it indicates that the detail of the point cloud content increases. Points can be classified by LOD.

[0134] The lifting transform unit 40010 according to the embodiment performs lifting transform coding for transforming the attributes of the point cloud based on the weights. As described above, the lifting transform coding may be optionally applied.

[0135] The coefficient quantization unit 40011 according to the embodiment quantizes the attribute after the attribute encoding based on the coefficient.

[0136] The arithmetic encoder 40012 according to the embodiment encodes the quantized attributes based on arithmetic coding.

[0137] Although not shown in this figure, Figure 4 The elements of the point cloud video encoder may be implemented by hardware, software, firmware, or a combination thereof including one or more processors or integrated circuits configured to communicate with one or more memories included in the point cloud content providing device. The one or more processors may perform the above Figure 4 At least one of the operations and / or functions of the elements of the point cloud video encoder. In addition, one or more processors can operate or execute a set of software programs and / or instructions to perform Figure 4 The operation and / or functionality of the elements of the point cloud video encoder. One or more memories according to an embodiment may include a high-speed random access memory, or include a non-volatile memory (e.g., one or more disk storage devices, flash memory devices, or other non-volatile solid-state storage devices).

[0138] Figure 5 An example of a voxel according to an embodiment is shown.

[0139] Figure 5 2 shows voxels located in a 3D space represented by a coordinate system consisting of three axes, namely, an X-axis, a Y-axis, and a Z-axis. Figure 4 As described, the point cloud video encoder (eg, quantization unit 40001) may 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 representing the 3D space (eg, X-axis, Y-axis, and Z-axis). Figure 5 An example of a voxel generated by an octree structure is shown, in which the octree consists of two poles (0, 0, 0) and (2 d ,2 d ,2 d ) is recursively subdivided. A voxel consists of at least one point. The spatial coordinates of the voxel can be estimated based on the positional relationship with the voxel group. As mentioned above, the voxel has properties like the pixels of a 2D image / video (such as color or reflectivity). The details of the voxel are similar to those of the reference Figure 4 The details described are the same, so their description is omitted.

[0140] Figure 6 Examples of octrees and occupancy codes are shown according to an embodiment.

[0141] As reference Figures 1 to 4As described, the point cloud content providing system (point cloud video encoder 10002) or the octree analysis unit 40002 of the point cloud video encoder performs octree geometry encoding (or octree encoding) based on the octree structure to efficiently manage the area and / or position of voxels.

[0142] Figure 6 The upper part of FIG. 1 shows an octree structure. The 3D space of the point cloud content according to an embodiment is represented by axes (e.g., X-axis, Y-axis, and Z-axis) of a coordinate system. The octree structure is formed by recursively subdividing the two poles (0, 0, 0) and (2 d ,2 d ,2 d ) is created by defining the cube axis-aligned bounding box. Here, 2 d can be set to the value of the minimum bounding box that constitutes all points around the point cloud content (or point cloud video). Here, d represents the depth of the octree. The value of d is determined in Formula 1. In Formula 1, Indicates the position (or position value) of the quantization point.

[0143] [Formula 1]

[0144]

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

[0146] Figure 6 The lower part of shows the octree occupancy code. The occupancy code of the octree is generated to indicate whether each of the eight divided spaces generated by dividing one space contains at least one point. Therefore, a single occupancy code is represented by eight child nodes. Each child node represents the occupancy of the divided space, and the child node has a 1-bit value. Therefore, the occupancy code is represented as an 8-bit code. That is, when at least one point is contained in the space corresponding to the child node, the node is assigned a value of 1. When no point is contained in the space corresponding to the child node (the space is empty), the node is assigned a value of 0. Since Figure 6The occupancy code shown in is 00100001, so it indicates that the space corresponding to the third child node and the eighth child node among the eight child nodes each contains at least one point. As shown in the figure, each of the third child node and the eighth child node has 8 child nodes, and the child nodes are represented by an 8-bit occupancy code. The figure shows that the occupancy code of the third child node is 10000111, and the occupancy code of the eighth child node is 01001111. The point cloud video encoder (e.g., arithmetic encoder 40004) according to the embodiment can perform entropy encoding on the occupancy code. In order to improve compression efficiency, the point cloud video encoder can perform intra-frame / inter-frame encoding on the occupancy code. The receiving device (e.g., receiving device 10004 or point cloud video decoder 10006) according to the embodiment reconstructs the occupancy code based on the occupancy code.

[0147] The point cloud video encoder (e.g., octree analysis unit 40002) according to the embodiment can perform voxelization and octree encoding to store the positions of the points. However, the points are not always evenly distributed in the 3D space, so there will be specific areas where there are fewer points. Therefore, it is inefficient to perform voxelization on the entire 3D space. For example, when a specific area contains fewer points, it is not necessary to perform voxelization in the specific area.

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

[0149] In order to perform direct encoding, the option of using direct mode to apply direct encoding should be enabled. The node to which direct encoding will be applied is not a leaf node, and there should be fewer points than a threshold within a specific node. In addition, the total number of points to which direct encoding will be applied should not exceed a preset threshold. When the above conditions are met, the point cloud video encoder (or arithmetic encoder 40004) according to the implementation method can perform entropy encoding on the position (or position value) of the point.

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

[0151] A block has 12 edges, so there are at least 12 intersections in a block. Each intersection is called a vertex (or top point). When there is at least one occupied voxel adjacent to the edge among all blocks sharing the edge, the vertex existing along the edge is detected. An occupied voxel according to an embodiment refers to a voxel containing a point. The position of the vertex detected along the edge is the average position of the edge of all voxels adjacent to the edge among all blocks sharing the edge.

[0152] Once the vertex is detected, the point cloud video encoder according to the embodiment can perform entropy coding on the starting point (x, y, z) of the edge, the direction vector (Δx, Δy, Δz) of the edge, and the vertex position value (relative position value within the edge). When triangle soup geometry coding is applied, the point cloud video encoder according to the embodiment (e.g., geometry reconstruction unit 40005) can generate a restored geometry structure (reconstructed geometry structure) by performing triangle reconstruction, upsampling, and voxelization.

[0153] The vertices at the edge of the block determine the surface passing through the block. The surface according to the embodiment is a non-planar polygon. In the triangle reconstruction process, the surface represented by the triangle is reconstructed based on the starting point of the edge, the direction vector of the edge, and the position value of the vertex. According to Formula 2, the triangle reconstruction process is performed by the following operations: i) calculating the centroid value of each vertex, ii) subtracting the center value from each vertex value, and iii) estimating the sum of the squares of the values ​​obtained by subtraction.

[0154] [Formula 2]

[0155]

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

[0157] [Table 1] Triangles formed from vertices ordered 1,…,n

[0158] [Table 1]

[0159]

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

[0161] Figure 7 An example of a neighbor node pattern according to an embodiment is illustrated.

[0162] In order to improve the compression efficiency of the point cloud video, the point cloud video encoder according to the embodiment may perform entropy coding based on context adaptive arithmetic coding.

[0163] As reference Figures 1 to 6 Described, Figure 1 Point cloud content providing system or point cloud video encoder 10002 or Figure 4 The point cloud video encoder or arithmetic encoder 40004 can immediately perform entropy encoding on the occupancy code. In addition, the point cloud content providing system or the point cloud video encoder can perform entropy encoding (intra-frame encoding) based on the occupancy code of the current node and the occupancy of the neighboring nodes, or perform entropy encoding (inter-frame encoding) based on the occupancy code of the previous frame. The frame representation according to the embodiment is a collection of point cloud videos generated simultaneously. The compression efficiency of the intra-frame coding / inter-frame coding according to the embodiment may depend on the number of neighboring nodes referenced. When the number of bits increases, the operation becomes complicated, but the encoding can be biased to one side, which can increase the compression efficiency. For example, when a 3-bit context is given, 2 bits need to be used. 3= 8 ways to perform encoding. The division into parts for encoding affects the complexity of the implementation. Therefore, an appropriate level of compression efficiency and complexity must be met.

[0164] Figure 7 The process of obtaining an occupancy pattern based on the occupancy of neighbor nodes is illustrated. The point cloud video encoder according to the embodiment determines the occupancy of neighbor nodes of each node of the octree and obtains the value of the neighbor pattern. The neighbor node pattern is used to infer the occupancy pattern of the node. Figure 7 The upper part of the diagram shows a cube corresponding to the node (the cube in the middle) and six cubes (neighboring nodes) that share at least one face with the cube. The nodes shown in the diagram are nodes at the same depth. The numbers shown in the diagram represent the weights (1, 2, 4, 8, 16, and 32) associated with the six nodes, respectively. The weights are assigned in sequence according to the positions of the neighboring nodes.

[0165] Figure 7 The lower part shows the neighbor node mode value. The neighbor node mode value is the sum of the values ​​multiplied by the weights of the occupied neighbor nodes (neighbor nodes with points). Therefore, the neighbor node mode value is 0 to 63. When the neighbor node mode value is 0, it indicates that there is no node with a point (unoccupied node) among the neighbor nodes of the node. When the neighbor node mode value is 63, it indicates that all neighbor nodes are occupied nodes. As shown in the figure, since the neighbor nodes assigned weights 1, 2, 4 and 8 are occupied nodes, the neighbor node mode value is 15, which is the sum of 1, 2, 4 and 8. The point cloud video encoder can perform encoding according to the neighbor node mode value (for example, when the neighbor node mode value is 63, 64 encodings can be performed). According to an embodiment, the point cloud video encoder can reduce the encoding complexity by changing the neighbor node mode value (for example, based on a table through which 64 is changed to 10 or 6).

[0166] Figure 8 An example of point configuration in each LOD according to an embodiment is illustrated.

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

[0168] The point cloud video encoder (e.g., LOD generation unit 40009) can classify (reorganize or group) points by LOD. Figure 8The point cloud content corresponding to the LOD is shown. Figure 8 The leftmost image in the figure shows the original point cloud content. Figure 8 The second picture from the left shows the distribution of points in the lowest LOD, and Figure 8 The rightmost picture in the figure shows the distribution of points in the highest LOD. That is, the points in the lowest LOD are sparsely distributed, and the points in the highest LOD are densely distributed. That is, as the LOD increases from Figure 8 As you go up in the direction indicated by the arrow at the bottom, the space (or distance) between the points becomes narrower.

[0169] Fig. 9 An example of point configuration for each LOD according to an embodiment is illustrated.

[0170] As reference Figures 1 to 8 As described, a point cloud content providing system or a point cloud video encoder (e.g., Figure 1 Point cloud video encoder 10002, Figure 4 The point cloud video encoder or LOD generation unit 40009 can generate LOD. LOD is generated by reorganizing points into a set of refinement levels according to the set LOD distance value (or a set of Euclidean distances). The LOD generation process is performed not only by the point cloud video encoder, but also by the point cloud video decoder.

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

[0172] As reference Figure 4 As described, the point cloud video encoder according to the embodiment may selectively or in combination perform LOD-based prediction transform coding, LOD-based lifting transform coding, and RAHT transform coding.

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

[0174] The predicted attribute (or attribute value) according to the embodiment is set to the average value of the value obtained by multiplying the attribute (or attribute value) of the neighboring point set in the predictor of each point (for example, color, reflectivity, etc.) by the weight (or weight value) calculated based on the distance to each neighboring point. The point cloud video encoder (for example, the coefficient quantization unit 40011) according to the embodiment can quantize and dequantize the residual (which can be called residual attribute, residual attribute value, attribute prediction residual value or prediction error attribute value, etc.) of each point obtained by subtracting the predicted attribute (or attribute value) of each point from the attribute of each point (that is, the original attribute value). The quantization processing performed on the residual attribute value in the transmitting device is configured as shown in Table 2. The dequantization processing performed on the residual attribute value in the receiving device is configured as shown in Table 3.

[0175] [Table 2]

[0176] int PCCQuantization(int value,int quantStep){ if(value>=0){ return floor(value / quantStep+1.0 / 3.0); }else{ return-floor(-value / quantStep+1.0 / 3.0); } }

[0177] [Table 3]

[0178] int PCCInverseQuantization(int value,int quantStep){ if(quantStep==0){ return value; }else{ return value*quantStep; } }

[0179] When the predictor of each point has neighboring points, the point cloud video encoder (e.g., arithmetic encoder 40012) according to the embodiment can perform entropy coding on the residual attribute value after quantization and dequantization as described above. When the predictor of each point has no neighboring points, the point cloud video encoder (e.g., arithmetic encoder 40012) according to the embodiment can perform entropy coding on the attributes of the corresponding points without performing the above operations.

[0180] The point cloud video encoder (e.g., the lifting transform unit 40010) according to the embodiment can generate a predictor for each point, set the calculated LOD and register the neighboring points into the predictor, and set the weight according to the distance to the neighboring points to perform lifting transform coding. The lifting transform coding according to the embodiment is similar to the above-mentioned predictive transform coding, but the difference is that the weight is cumulatively applied to the attribute value. The process of cumulatively applying weights to attribute values ​​according to the embodiment is configured as follows.

[0181] 1) Create an array Quantization Weight (QW) for storing the weight value of each point. The initial value of all elements of 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 values ​​obtained by the multiplication.

[0182] 2) Boosting prediction processing: A value obtained by multiplying the attribute value of a point by a weight is subtracted from the existing attribute value to calculate a predicted attribute value.

[0183] 3) Create a temporary array called updateweight, and update and initialize it to zero.

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

[0185] 5) Boosting update process: Divide the attribute value of the update array for all predictors by the weight value of the update weight array indexed by the predictor, and add the existing attribute value to the value obtained by the division.

[0186] 6) The predicted attribute is calculated by multiplying the attribute value updated by the lifting update process by the weight updated by the lifting prediction process (stored in QW) for all predictors. The point cloud video encoder (e.g., coefficient quantization unit 40011) according to the embodiment quantizes the predicted attribute value. In addition, the point cloud video encoder (e.g., arithmetic encoder 40012) performs entropy encoding on the quantized attribute value.

[0187] A point cloud video encoder according to an embodiment (e.g., RAHT unit 40008) can perform RAHT transform coding, in which attributes associated with lower-level nodes in the octree are used to predict attributes of higher-level nodes. RAHT transform coding is an example of attribute intra-frame coding performed by backward scanning of the octree. A point cloud video encoder according to an embodiment scans the entire area from voxels and repeats a merging process of merging voxels into larger blocks in each step until the root node is reached. The merging process according to an embodiment is performed only on occupied nodes. The merging process is not performed on empty nodes. The merging process is performed in a higher mode just above the empty node.

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

[0189] [Formula 3]

[0190]

[0191] here, is the low-pass value and is used in the merging process at the next higher level. Denotes the high-pass coefficient. The high-pass coefficient in each step is quantized and undergoes entropy coding (eg, encoded by arithmetic encoder 40012). The weight is calculated as As shown in formula 4, and Compute the root node.

[0192] [Formula 4]

[0193]

[0194] The values ​​of gDC are also quantized and undergo entropy coding like the high-pass coefficients.

[0195] Fig.10 A point cloud video decoder according to an embodiment is illustrated.

[0196] Fig.10 The point cloud video decoder illustrated in Figure 1 An example of a point cloud video decoder 10006 described in Figure 1 The point cloud video decoder 10006 illustrated in FIG. 10006 is the same as or similar to the operation of the point cloud video decoder 10006 illustrated in FIG. As shown in the figure, the point cloud video decoder can receive a geometry bitstream and an attribute bitstream contained in one or more bitstreams. The point cloud video decoder includes a geometry decoder and an attribute decoder. The geometry decoder performs geometry decoding on the geometry bitstream and outputs the decoded geometry structure. The attribute decoder performs attribute decoding on the attribute bitstream based on the decoded geometry and outputs the decoded attributes. The decoded geometry structure and the decoded attributes are used to reconstruct the point cloud content (decoded point cloud).

[0197] Fig.11 A point cloud video decoder according to an embodiment is illustrated.

[0198] Fig.11 The point cloud video decoder illustrated in Fig.10 An example of a point cloud video decoder is illustrated in FIG. 1 and may be executed as Figures 1 to 9 The decoding operation is the inverse of the encoding operation of the point cloud video encoder illustrated in FIG.

[0199] As reference Figure 1 and Fig.10 As described, the point cloud video decoder can perform geometry decoding and attribute decoding. Geometry decoding is performed before attribute decoding.

[0200] According to an embodiment, the point cloud video decoder includes an arithmetic decoder (arithmetic decoding) 11000, an octree synthesizer (synthesized octree) 11001, a surface approximation synthesizer (synthesized surface approximation) 11002 and a geometry reconstruction unit (reconstruction geometry) 11003, an inverse coordinate transformer (inverse transformation coordinates) 11004, an arithmetic decoder (arithmetic decoding) 11005, an inverse quantization unit (inverse quantization) 11006, a RAHT transformer 11007, an LOD generator (generate LOD) 11008, an inverse lifting unit (inverse lifting) 11009 and / or an inverse color transformation unit (inverse transformation color) 11010.

[0201] The arithmetic decoder 11000, the octree synthesizer 11001, the surface approximation synthesizer 11002, the geometric reconstruction unit 11003, and the coordinate inverse transformer 11004 may perform geometric decoding. The geometric decoding according to the embodiment may include direct decoding and triangular soup geometric decoding. Direct decoding and triangular soup geometric decoding are selectively applied. Geometric decoding is not limited to the above examples, and is used as a reference. Figures 1 to 9 This is performed by inverse processing of the geometric encoding described.

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

[0203] The octree synthesizer 11001 according to the embodiment can generate an octree by acquiring an occupancy code from a decoded geometry bitstream (or information about a geometry structure protected as a result of decoding). Figures 1 to 9 Configure the seizure code in detail.

[0204] When triangle soup geometry encoding is applied, the surface approximation synthesizer 11002 according to an embodiment can synthesize the surface based on the decoded geometry structure and / or the generated octree.

[0205] According to an embodiment, the geometry reconstruction unit 11003 may regenerate the geometry based on the surface and / or the decoded geometry. Figures 1 to 9As described, direct coding and triangular geometry coding are selectively applied. Therefore, the geometry reconstruction unit 11003 directly imports and adds position information about the points to which direct coding is applied. When triangular geometry coding is applied, the geometry reconstruction unit 11003 can reconstruct the geometry by performing the reconstruction operations (e.g., triangle reconstruction, upsampling, and voxelization) of the geometry reconstruction unit 40005. Details and References Figure 6 The details of the description are the same, so the description thereof is omitted. The reconstructed geometry may include a point cloud picture or frame that does not contain attributes.

[0206] The coordinate inverse transformer 11004 according to an embodiment may acquire the position of a point by transforming the coordinates based on the reconstructed geometric structure.

[0207] The arithmetic decoder 11005, the inverse quantization unit 11006, the RAHT transformer 11007, the LOD generation unit 11008, the inverse lifter 11009 and / or the inverse color transformation unit 11010 may perform the reference Fig.10 Attribute decoding described. Attribute decoding according to an embodiment includes regional adaptive hierarchical transform (RAHT) decoding, hierarchical nearest neighbor prediction based on interpolation (prediction transform) decoding, and hierarchical nearest neighbor prediction based on interpolation with an update / lifting step (lifting transform) decoding. The above three decoding schemes can be selectively used, or a combination of one or more decoding schemes can be used. Attribute decoding according to an embodiment is not limited to the above examples.

[0208] The arithmetic decoder 11005 according to the embodiment decodes the attribute bit stream through arithmetic coding.

[0209] The inverse quantization unit 11006 according to the embodiment inversely quantizes the information about the decoded attribute bitstream or attribute protected as a result of decoding, and outputs the inversely quantized attribute (or attribute value). The inverse quantization may be selectively applied based on the attribute encoding of the point cloud video encoder.

[0210] According to an embodiment, the RAHT transformer 11007, the LOD generation unit 11008 and / or the inverse lifter 11009 may process the reconstructed geometry and the inverse quantized attributes. As described above, the RAHT transformer 11007, the LOD generation unit 11008 and / or the inverse lifter 11009 may selectively perform a decoding operation corresponding to the encoding of the point cloud video encoder.

[0211] The inverse color transform unit 11010 according to the embodiment performs inverse transform encoding to inversely transform the color value (or texture) included in the decoded attribute. The operation of the inverse color transform unit 11010 may be selectively performed based on the operation of the color transform unit 40006 of the point cloud video encoder.

[0212] Although not shown in this figure, Fig.11 The elements of the point cloud video decoder may be implemented by hardware, software, firmware, or a combination thereof including one or more processors or integrated circuits configured to communicate with one or more memories included in the point cloud content providing device. The one or more processors may perform the above Fig.11 At least one or more of the operations and / or functions of the elements of the point cloud video decoder. In addition, one or more processors can operate or execute a set of software programs and / or instructions to perform Fig.11 The operation and / or functionality of the elements of the point cloud video decoder.

[0213] Fig.12 A transmitting device according to an embodiment is illustrated.

[0214] Fig.12 The transmitting device shown in Figure 1 The sending device 10000 (or Figure 4 Example of a point cloud video encoder). Fig.12 The sending device illustrated in the example can execute the same as reference Figures 1 to 9 One or more of the operations and methods that are the same or similar to the operations and methods of the point cloud video encoder described. According to the embodiment, the sending device 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-frame / inter-frame coding processor 12005, an arithmetic encoder 12006, a metadata processor 12007, a color transformation processor 12008, an attribute transformation processor 12009, a LOD / lifting / RAHT transformation processor 12010, an arithmetic encoder 12011 and / or a sending processor 12012.

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

[0216] 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 coding processor 12005 and the arithmetic encoder 12006 perform geometric coding. Figures 1 to 9 The geometric encoding described is the same or similar, so a detailed description thereof is omitted.

[0217] According to an embodiment, the quantization processor 12001 quantizes the geometric structure (e.g., the position value of a point). The operation and / or quantization of the quantization processor 12001 are similar to the reference Figure 4 The operation and / or quantization of the quantization unit 40001 described above are the same or similar. Figures 1 to 9 The details of the description are the same.

[0218] The voxelization processor 12002 according to the embodiment performs voxelization on the quantized position value of the point. The voxelization processor 12002 may perform the same as the reference Figure 4 The operation and / or voxelization process of the quantization unit 40001 described above is the same as or similar to the operation and / or process of the voxelization process described above. Figures 1 to 9 The details of the description are the same.

[0219] The octree occupancy code generator 12003 according to the embodiment performs octree encoding on the voxelized position of the point based on the octree structure. The octree occupancy code generator 12003 can generate an occupancy code. The octree occupancy code generator 12003 can perform the same as the reference Figure 4 and Figure 6 The operations and / or methods of the point cloud video encoder (or octree analysis unit 40002) described above are the same or similar to the operations and / or methods. Figures 1 to 9 The details of the description are the same.

[0220] The surface model processor 12004 according to an embodiment may perform triangulated geometry encoding based on the surface model to reconstruct the position of a point in a specific region (or node) based on voxels. Figure 4 The operations and / or methods of the point cloud video encoder (e.g., the surface approximation analysis unit 40003) described above are the same or similar to the operations and / or methods. Figures 1 to 9 The details of the description are the same.

[0221] According to the embodiment, the intra-frame / inter-frame encoding processor 12005 can perform intra-frame / inter-frame encoding on the point cloud data. The intra-frame / inter-frame encoding processor 12005 can perform the same as the reference Figure 7 The same or similar encoding as described for intra / inter coding. Details and references Figure 7 The details of the description are the same. According to an embodiment, the intra / inter encoding processor 12005 may be included in the arithmetic encoder 12006.

[0222] According to an embodiment, the arithmetic encoder 12006 performs entropy coding on the octree and / or approximate octree of the point cloud data. For example, the coding scheme includes arithmetic coding. The arithmetic encoder 12006 performs the same or similar operations and / or methods as the operations and / or methods of the arithmetic encoder 40004.

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

[0224] The color transformation processor 12008, the attribute transformation processor 12009, the LOD / lifting / RAHT transformation processor 12010, and the arithmetic encoder 12011 perform attribute encoding. Figures 1 to 9 The attribute codes described are the same or similar, so a detailed description thereof is omitted.

[0225] The color transform processor 12008 according to an embodiment performs color transform encoding to transform the color value included in the attribute. The color transform processor 12008 may perform color transform encoding based on the reconstructed geometry. The reconstructed geometry is consistent with the reference Figures 1 to 9 In addition, it performs the same Figure 4 The operations and / or methods of the color conversion unit 40006 described above are the same as or similar to the operations and / or methods described above, and detailed descriptions thereof are omitted.

[0226] The attribute transformation processor 12009 according to an embodiment performs attribute transformation to transform attributes based on the reconstructed geometry and / or the location where geometry encoding is not performed. Figure 4 The operation and / or method of the attribute transformation unit 40007 described in the embodiment are the same as or similar to the operation and / or method of the attribute transformation unit 40007 described in the embodiment. The detailed description thereof is omitted. The LOD / lifting / RAHT transformation processor 12010 according to the embodiment may encode the transformed attribute by any one of RAHT coding, prediction transformation coding and lifting transformation coding or a combination thereof. The LOD / lifting / RAHT transformation processor 12010 performs the same as the reference. Figure 4 The operations of the RAHT unit 40008, the LOD generation unit 40009, and the lifting transform unit 40010 described above are the same as or similar to at least one of the operations. In addition, the prediction transform coding, the lifting transform coding, and the RAHT transform coding are the same as those of the reference Figures 1 to 9 Those described are the same, so a detailed description thereof is omitted.

[0227] The arithmetic encoder 12011 according to the embodiment may encode the encoded attribute based on arithmetic coding. The arithmetic encoder 12011 performs the same or similar operation and / or method as that of the arithmetic encoder 40012.

[0228] The transmitting processor 12012 according to the embodiment may transmit each bitstream containing the encoded geometry and / or the encoded attributes and / or metadata (or metadata information), or transmit a bitstream configured with the encoded geometry and / or the encoded attributes and / or metadata. When the encoded geometry and / or the encoded attributes and / or metadata according to the embodiment are configured into a bitstream, the bitstream may include one or more sub-bitstreams. The bitstream according to the embodiment may include signaling information, which includes a sequence parameter set (SPS) for sequence-level signaling, a geometry parameter set (GPS) for signaling of geometry information encoding, an attribute parameter set (APS) for signaling of attribute information encoding, and a tile parameter set (TPS or tile list) for tile-level signaling and slice data. The slice data may include information about one or more slices. A slice according to the embodiment may include a geometry bitstream Geom0. 0 and one or more attribute bitstreams Attr0 0 and Attr1 0 .

[0229] A slice is a sequence of syntax elements that represents all or part of a coded point cloud frame.

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

[0231] Fig.13 A receiving device according to an embodiment is illustrated.

[0232] Fig.13 The receiving device illustrated in the example is Figure 1 The receiving device 10004 (or Fig.10 and Fig.11 An example of a point cloud video decoder). Fig.13 The receiving device illustrated in the example may execute the same Figures 1 to 11 One or more of the operations and methods of the point cloud video decoder described are the same or similar to the operations and methods.

[0233] The receiving apparatus according to the embodiment includes a receiver 13000, a receiving processor 13001, an arithmetic decoder 13002, an octtree reconstruction processor 13003 based on an occupancy code, 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, an LOD / lifting / RAHT inverse transform processor 13009, a color inverse transform processor 13010 and / or a renderer 13011. Each element for decoding according to the embodiment may perform an inverse process of the operation of the corresponding element for encoding according to the embodiment.

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

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

[0236] The arithmetic decoder 13002, the octtree reconstruction processor 13003 based on the occupancy code, the surface model processor 13004 and the inverse quantization processor 13005 can perform geometric decoding. Figures 1 to 10 The geometric decoding described is the same or similar, so a detailed description thereof is omitted.

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

[0238] The octree reconstruction processor 13003 based on the occupancy code according to the embodiment can reconstruct the octree by obtaining the occupancy code from the decoded geometry bitstream (or the information about the geometry structure protected as a result of decoding). The octree reconstruction processor 13003 based on the occupancy code performs the same or similar operations and / or methods as the operations of the octree synthesizer 11001 and / or the octree generation method. When triangle soup geometry coding is applied, the surface model processor 13004 according to the embodiment can perform triangle soup geometry decoding and related geometry reconstruction (e.g., triangle reconstruction, upsampling, voxelization) based on the surface model method. The surface model processor 13004 performs the same or similar operations as the operations of the surface approximation synthesizer 11002 and / or the geometry reconstruction unit 11003.

[0239] According to an embodiment, the inverse quantization processor 13005 can inverse quantize the decoded geometric structure.

[0240] According to an embodiment, the metadata parser 13006 can parse the metadata contained in the received point cloud data, for example, setting values. The metadata parser 13006 can pass the metadata for geometry decoding and / or attribute decoding. Fig.12 The metadata described is the same, so a detailed description thereof is omitted.

[0241] The arithmetic decoder 13007, the inverse quantization processor 13008, the LOD / RAHT inverse transform processor 13009 and the color inverse transform processor 13010 perform attribute decoding. Figures 1 to 10 The attribute decoding described is the same or similar, so a detailed description thereof is omitted.

[0242] The arithmetic decoder 13007 according to the embodiment can decode the attribute bitstream by arithmetic coding. The arithmetic decoder 13007 can decode the attribute bitstream based on the reconstructed geometric structure. The arithmetic decoder 13007 performs the same or similar operation and / or coding as the operation and / or coding of the arithmetic decoder 11005.

[0243] According to an embodiment, the inverse quantization processor 13008 may inverse quantize the decoded attribute bitstream. The inverse quantization processor 13008 performs the same or similar operations and / or methods as those of the inverse quantization unit 11006 and / or inverse quantization methods.

[0244] The LOD / lifting / RAHT inverse transform processor 13009 according to an embodiment can process the reconstructed geometry and the inverse quantized attributes. The prediction / lifting / RAHT inverse transform processor 1301 performs one or more of the same or similar operations and / or decoding as the RAHT transformer 11007, the LOD generation unit 11008 and / or the inverse lifter 11009. 13010 according to an embodiment performs inverse transform encoding to inverse transform the color value (or texture) included in the decoded attribute. The color inverse transform processor 13010 performs the same or similar operations and / or inverse transform encoding as the inverse color transform unit 11010. The renderer 13011 according to an embodiment can render point cloud data.

[0245] Fig.14 An exemplary structure operably connectable with a method / apparatus for transmitting and receiving point cloud data according to an embodiment is shown.

[0246] Fig.14 The structure of represents a configuration in which at least one of the server 17600, the robot 17100, the autonomous driving vehicle 17200, the XR device 17300, the smart phone 17400, the home appliance 17500, and / or the head mounted display (HMD) 17700 is connected to the cloud network 17000. The robot 17100, the autonomous driving vehicle 17200, the XR device 17300, the smart phone 17400, or the home appliance 17500 is referred to as a device. In addition, the XR device 17300 may correspond to a point cloud compressed data (PCC) device according to an embodiment, or may be operably connected to a PCC device.

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

[0248] The server 17600 may be connected to at least one of the robot 17100 , the autonomous driving vehicle 17200 , the XR device 17300 , the smart phone 17400 , the home appliance 17500 , and / or the HMD 17700 via the cloud network 17000 , and may assist at least a portion of the processing of the connected devices 17100 to 17700 .

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

[0250] In the following, various embodiments of apparatuses 17100 to 17500 to which the above technology is applied will be described. According to the above embodiments, Fig.14 The apparatuses 17100 to 17500 illustrated in

[0251] <PCC+XR>

[0252] The XR / PCC apparatus 17300 may adopt PCC technology and / or XR (AR+VR) technology and may be implemented as an HMD, a head-up display (HUD) installed in a vehicle, a television, a mobile phone, a smartphone, a computer, a wearable device, a household appliance, a digital signage, a vehicle, a stationary robot, or a mobile robot.

[0253] The XR / PCC apparatus 17300 may analyze 3D point cloud data or image data obtained through various sensors or from an external device and generate position data and attribute data regarding 3D points. Accordingly, the XR / PCC apparatus 17300 may obtain information regarding the surrounding space or a real object and render and output an XR object. For example, the XR / PCC apparatus 17300 may match an XR object including auxiliary information regarding the recognized object with the recognized object and output the matched XR object.

[0254] <PCC+Autopilot+XR>

[0255] The autonomous vehicle 17200 may be implemented as a mobile robot, a vehicle, an unmanned aerial vehicle, etc. by applying PCC technology and XR technology.

[0256] The autonomous vehicle 17200 applying XR / PCC technology may represent an autonomous vehicle provided with a device for providing an XR image or an autonomous vehicle that is a control / interaction target in an XR image. Specifically, the autonomous vehicle 17200 that is a control / interaction target in an XR image may be distinguishable from the XR apparatus 17300 and may be operably connected to the XR apparatus 1730.

[0257] The autonomous vehicle 17200 having a device for providing an XR / PCC image may obtain sensor information from a sensor including a camera and output the generated XR / PCC image based on the obtained sensor information. For example, the autonomous vehicle 17200 may have an HUD and output an XR / PCC image thereto, thereby providing an XR / PCC object corresponding to a real object or an object existing on a screen to an occupant.

[0258] When the XR / PCC object is output to the HUD, at least a portion of the XR / PCC object may be output to overlap with the real object to which the occupant's eyes are directed. On the other hand, when the XR / PCC object is output to a display disposed inside the autonomous driving vehicle, at least a portion of the XR / PCC object may be output to overlap with the object on the screen. For example, the autonomous driving vehicle 17200 may output XR / PCC objects corresponding to objects such as roads, another vehicle, traffic lights, traffic signs, two-wheeled vehicles, pedestrians, and buildings.

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

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

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

[0262] The PCC method / device according to the embodiment can be applied to a vehicle that provides autonomous driving services.

[0263] Vehicles providing autonomous driving services are connected to the PCC device for wired / wireless communication.

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

[0265] In addition, the point cloud video encoder of the sender can also perform a spatial segmentation process of spatially segmenting (or dividing) the point cloud data into one or more 3D blocks before encoding the point cloud data. That is, in order to perform the encoding and sending operations of the sending device and the decoding and rendering operations of the receiving device in real time and with low latency, the sending device can spatially segment the point cloud data into multiple regions. In addition, the sending device can encode the spatially segmented regions (or blocks) independently or non-independently, thereby achieving random access and parallel encoding in the three-dimensional space occupied by the point cloud data. In addition, the sending device and the receiving device can independently or non-independently perform encoding and decoding for each spatially segmented region (or block), thereby preventing the accumulation of errors in the encoding process and the decoding process.

[0266] Fig.15 is a diagram illustrating another example of a point cloud transmitting apparatus according to an embodiment including a space divider.

[0267] The point cloud transmitting device according to the embodiment may include a data input unit 51001, a coordinate transformation unit 51002, a quantization processor 51003, a space divider 51004, a signaling processor 51005, a geometry encoder 51006, an attribute encoder 51007, and a transmitting processor 51008. According to the embodiment, the coordinate transformation unit 51002, the quantization processor 51003, the space divider 51004, the geometry encoder 51006, and the attribute encoder 51007 may be referred to as a point cloud video encoder.

[0268] The data input unit 51001 can execute Figure 1 Some or all operations of the point cloud video acquisition unit 10001, or can be performed Fig.12 The coordinate transformation unit 51002 can perform some or all operations of the data input unit 12000. Figure 4 In addition, the quantization processor 51003 may perform some or all operations of the coordinate transformation unit 40000. Figure 4Some or all of the operations of the quantization unit 40001, or may perform Fig.12 Some or all operations of the quantization processor 12001.

[0269] The spatial splitter 51004 can spatially split the point cloud data output from the quantization processor 51003 after quantization into one or more 3D blocks based on the bounding box and / or sub-bounding box. Here, the 3D block can refer to a tile group, a tile, a slice, a coding unit (CU), a prediction unit (PU) or a transform unit (TU). In one embodiment, the signaling information for spatial segmentation is entropy encoded by the signaling processor 51005 and then sent in the form of a bit stream through the sending processor 51008.

[0270] Fig.16 (a) to Fig.16 (c) of FIG. 1 illustrates an implementation of dividing the bounding box into one or more tiles. Fig.16 As shown in (a), the point cloud object corresponding to the point cloud data can be represented in the form of a box based on a coordinate system, which is called a bounding box. In other words, the bounding box represents a cube that can contain all points in the point cloud.

[0271] Fig.16 (b) and Fig.16 (c) illustrates an example in which Fig.16 An example in which the bounding box of (a) is segmented into tile 1# and tile 2#, and tile 2# is again segmented into slice 1# and slice 2#.

[0272] In one embodiment, the point cloud content may be a person, multiple persons, an object, or multiple objects such as an actor. In a larger scope, it may be a map for autonomous driving or a map for indoor navigation of a robot. In this case, the point cloud content may be a large amount of locally connected data. In this case, the point cloud content cannot be encoded / decoded at one time, so tile segmentation may be performed before compressing the point cloud content. For example, room #101 in a building may be segmented into one tile, and room #102 in the building may be segmented into another tile. In order to support fast encoding / decoding by applying parallelization to the segmented tiles, the tiles may be segmented (or split) into slices again. This operation may be referred to as slice segmentation (or splitting).

[0273] That is, according to an embodiment, a tile may represent a partial area (e.g., a rectangular cube) of a 3D space occupied by point cloud data. According to an embodiment, a tile may include one or more slices. A tile according to an embodiment may be divided into one or more slices, so that a point cloud video encoder may encode point cloud data in parallel.

[0274] A slice may represent a unit of data (or bitstream) that can be independently encoded by a point cloud video encoder according to an embodiment and / or a unit of data (or bitstream) that can be independently decoded by a point cloud video decoder. A slice may be a collection of data in a 3D space occupied by point cloud data or a collection of some data among point cloud data. A slice according to an embodiment may represent a collection or region of points included in a tile according to an embodiment. According to an embodiment, a tile may be divided into one or more slices based on the number of points included in a tile. For example, a tile may be a collection of points divided by the number of points. According to an embodiment, a tile may be divided into one or more slices based on the number of points, and some data may be split or merged in the segmentation process. That is, a slice may be a unit that can be independently encoded within a corresponding tile. In this way, a tile obtained by spatial segmentation is divided into one or more slices for fast and efficient processing.

[0275] The point cloud video encoder according to the embodiment may encode the point cloud data slice by slice or tile by tile, wherein a tile includes one or more slices. In addition, the point cloud video encoder according to the embodiment may perform different quantization and / or transformation on each tile or each slice.

[0276] The positions of one or more 3D blocks (e.g., slices) spatially partitioned by the spatial partitioner 51004 are output to the geometry encoder 51006, and attribute information (or attributes) are output to the attribute encoder 51007. The position may be position information about a point included in a partition unit (a frame, a block, a tile, a tile group, or a slice), and is referred to as geometry information.

[0277] The geometry encoder 51006 constructs and encodes (i.e., compresses) an octree based on the position output from the spatial partitioner 51004 to output a geometry bitstream. The geometry encoder 51006 may reconstruct an octree and / or an approximate octree and output it to the attribute encoder 51007. The reconstructed octree may be referred to as reconstructed geometry (recovered geometry).

[0278] The attribute encoder 51007 encodes (ie, compresses) the attributes output from the space divider 51004 based on the reconstructed geometry output from the geometry encoder 51006, and outputs an attribute bitstream.

[0279] Fig.17 is a detailed block diagram illustrating another example of a geometry encoder 51006 and an attribute encoder 51007 according to an embodiment.

[0280] Fig.17The voxelization processor 53001, octree generator 53002, geometry information predictor 53003 and arithmetic encoder 53004 of the geometry encoder 51006 can perform Figure 4 Some or all operations of the octree analysis unit 40002, the surface approximation analysis unit 40003, the arithmetic encoder 40004 and the geometric reconstruction unit 40005, or some or all operations of the octree analysis unit 40002, the surface approximation analysis unit 40003, the arithmetic encoder 40004 and the geometric reconstruction unit 40005 can be performed. Fig.12 Some or all operations of the voxelization processor 12002, the octree occupancy code generator 12003 and the surface model processor 12004, the intra / inter coding processor 12005 and the arithmetic encoder 12006.

[0281] Fig.17 The attribute encoder 51007 may include a color transformation processor 53005, an attribute transformation processor 53006, an LOD configuration unit 53007, a neighboring point configuration unit 53008, an attribute information prediction unit 53009, a residual attribute information quantization processor 53010 and an arithmetic encoder 53011.

[0282] In an embodiment, a quantization processor may be further provided between the spatial divider 51004 and the voxelization processor 53001. The quantization processor quantizes the positions of one or more 3D blocks (eg, slices) spatially divided by the spatial divider 51004. In this case, the quantization processor may perform Figure 4 Some or all of the operations of the quantization unit 40001, or performing Fig.12 When a quantization processor is also provided between the spatial divider 51004 and the voxelization processor 53001, some or all operations of the quantization processor 12001 may be omitted or may not be omitted. Fig.15 Quantization processor 51003.

[0283] The voxelization processor 53001 according to an embodiment performs voxelization based on the position of one or more spatially divided 3D blocks (e.g., slices) or their quantized positions. Voxelization refers to the smallest unit that expresses position information in 3D space. A point of a point cloud content (or 3D point cloud video) according to an embodiment may be included in one or more voxels. According to an embodiment, a voxel may include one or more points. In an embodiment, when quantization is performed before voxelization, multiple points may belong to one voxel.

[0284] In this specification, when two or more points are included in one voxel, the two or more points are referred to as duplicate points. That is, in the geometry encoding process, overlapping points may be generated by geometry quantization and voxelization.

[0285] The voxelization processor 53001 according to an embodiment may output duplicate points belonging to one voxel to the octree generator 53002 without merging them, or may merge a plurality of points into one point and output the merged point to the octree generator 53002 .

[0286] The octree generator 53002 according to an embodiment generates an octree based on voxels output from the voxelization processor 53001.

[0287] The geometry information predictor 53003 according to the embodiment predicts and compresses the geometry information based on the octree generated by the octree generator 53002, and outputs the predicted and compressed information to the arithmetic encoder 53004. In addition, the geometry information predictor 53003 reconstructs the geometry based on the position changed by compression, and outputs the reconstructed (or decoded) geometry to the LOD configuration unit 53007 of the attribute encoder 51007. The reconstruction of the geometry information may be performed in a device or component separate from the geometry information predictor 53003. In another embodiment, the reconstructed geometry may also be provided to the attribute transformation processor 53006 of the attribute encoder 51007.

[0288] The color transformation processor 53005 of the attribute encoder 51007 corresponds to Figure 4 Color conversion unit 40006 or Fig.12 The color transform processor 12008 according to the embodiment. The color transform processor 53005 according to the embodiment performs color transform encoding of the color value (or texture) included in the attribute provided from the data input unit 51001 and / or the spatial divider 51004. For example, the color transform processor 53005 can transform the format of the color information (for example, from RGB to YCbCr). The operation of the color transform processor 53005 according to the embodiment can be selectively applied according to the color value included in the attribute. In another embodiment, the color transform processor 53005 can perform color transform encoding based on the reconstructed geometry. As for the details of the geometric reconstruction, refer to Figures 1 to 9 Description.

[0289] According to an embodiment, the attribute transformation processor 53006 may perform attribute transformation of transforming attributes based on a position and / or reconstructed geometry for which geometry encoding has not yet been performed.

[0290] The attribute transformation processor 53006 may be referred to as a recoloring unit.

[0291] The operation of the attribute transformation processor 53006 according to the embodiment may be optionally applied depending on whether the duplicate points are merged. According to the embodiment, the merging of duplicate points may be performed by the voxelization processor 53001 or the octree generator 53002 of the geometry encoder 51006.

[0292] In this specification, when points belonging to one voxel are merged into one point in the voxelization processor 53001 or the octree generator 53002, the attribute transformation processor 53006 performs attribute transformation.

[0293] Attribute transformation processor 53006 performs the Figure 4 Attribute transformation unit 40007 or Fig.12 The operations and / or methods of the attribute transformation processor 12009 are the same as or similar to the operations and / or methods.

[0294] According to an embodiment, the geometry information reconstructed by the geometry information predictor 53003 and the attribute information output from the attribute transformation processor 53006 are provided to the LOD configuration unit 53007 for attribute compression.

[0295] According to an embodiment, the attribute information output from the attribute transform processor 53006 may be compressed by one or a combination of two or more of RAHT encoding based on reconstructed geometric information, LOD-based predictive transform encoding, and lifting transform encoding.

[0296] Hereinafter, as an embodiment, it is assumed that attribute compression is performed by one or a combination of LOD-based predictive transform coding and lifting transform coding. Therefore, the description of RAHT coding will be omitted. As for the details of RAHT transform coding, refer to Figures 1 to 9 Description.

[0297] The LOD configuration unit 53007 according to an embodiment generates a level of detail (LOD).

[0298] LOD is the degree of detail of the point cloud content. When the LOD value decreases, it indicates that the details of the point cloud content are reduced. When the LOD value increases, it indicates that the details of the point cloud content are enhanced. Points can be classified according to LOD.

[0299] In an embodiment, in predictive transform coding and lifting transform coding, points may be divided into LODs and grouped.

[0300] This operation may be referred to as an LOD generation process, and groups with different LODs may be referred to as LOD l Here, l represents LOD and is an integer starting from 0. LOD0 is the set consisting of points with the largest distance between them. As l increases, the points belonging to LOD l The distance between the points decreases.

[0301] When LOD is generated by LOD configuration unit 53007 lWhen assembling, the neighbor point configuration unit 53008 according to the embodiment can be based on LOD l The set finds X (>0) nearest neighbors in a group with the same or lower LOD (i.e., the distance between nodes is large) and registers them in the predictor as a neighbor set. X is the maximum number of points that can be set as neighbors. X can be input as a user parameter or signaled in the signaling information by the signaling processor 51005 (e.g., the lifting_num_pred_nearest_neighbours field signaled in the APS).

[0302] As an example Fig. 9 , find the neighboring points of P3 belonging to LOD1 in LOD0 and LOD1. For example, when the maximum number of points (X) that can be set as neighbors is 3, the three nearest neighboring nodes of P3 can be P2 P4 P6. These three nodes are registered in the predictor of P3 as a neighboring set. In an embodiment, among the registered nodes, the neighboring node P4 is closest to P3 in terms of distance, then P6 is the next closest node, and P2 is the farthest node among the three nodes. Here, X=3 is merely an embodiment configured to provide an understanding of the present disclosure. The value of X may change.

[0303] As mentioned above, all points in the point cloud data can have a predictor.

[0304] The attribute information prediction unit 53009 according to an embodiment predicts the attribute value based on the neighboring points registered in the predictor. The predictor may have a registered neighbor set and register "1 / 2 distance = weight" based on the distance to each neighboring point. For example, the predictor of node P3 has (P2 P4 P6) as a neighbor set and calculates the weight based on the distance to each neighboring point. According to an embodiment, the weight of each neighboring point may be (1 / √(P2-P3) 2 ,1 / √(P4-P3) 2 ,1 / √(P6-P3) 2 ).

[0305] According to an embodiment, when a neighbor set of a predictor is set, the neighbor configuration unit 53008 or the attribute information prediction unit 53009 may normalize the weight of each neighbor by the sum of the weights of the neighbor.

[0306] For example, the weights of all neighboring points in the neighbor set of node P3 are summed (total_weight = 1 / √(P2-P3) 2 +1 / √(P4-P3) 2 +1 / √(P6-P3) 2), and the weight of each neighboring point is divided by the sum of the weights (1 / √(P2-P3) 2 / total_weight,1 / √(P4-P3) 2 / total_weight,1 / √(P6-P3) 2 / total_weight). Thus, the weight of each neighboring point is normalized.

[0307] Then, the attribute information prediction unit 53009 can predict the attribute value through the predictor.

[0308] According to an embodiment, the average of the values ​​obtained by multiplying the attributes (e.g., color, reflectivity, etc.) of the neighboring points registered in the predictor by the weight (or normalized weight) may be set as the prediction result (i.e., the predicted attribute value). Alternatively, the attribute of a specific point may be set as the prediction result (i.e., the predicted attribute value). According to an embodiment, the predicted attribute value may be referred to as predicted attribute information. In addition, the predicted attribute value (or predicted attribute information) of the point may be subtracted from the attribute value (i.e., the original attribute value) of the point to obtain a residual attribute value (or residual attribute information or residual).

[0309] According to an embodiment, the compressed result value may be pre-calculated by applying various prediction modes (or predictor indexes), and then a prediction mode (ie, predictor index) generating a minimum bitstream may be selected from among the prediction modes.

[0310] Next, the process of selecting a prediction mode will be described in detail.

[0311] In this specification, the prediction mode has the same meaning as the predictor index (Preindex) and may be broadly referred to as a prediction method.

[0312] In an embodiment, the process of finding the most appropriate prediction mode for each point and setting the found prediction mode in the predictor of the corresponding point may be performed by the attribute information prediction unit 53009.

[0313] According to an embodiment, a prediction mode in which a predicted attribute value is calculated by weighted averaging (i.e., an average obtained by multiplying the attribute of the neighboring points set in the predictor of each point by a weight calculated based on the distance to each neighboring point) will be referred to as prediction mode 0. In addition, a prediction mode in which the attribute of the first neighboring point is set to the predicted attribute value will be referred to as prediction mode 1, a prediction mode in which the attribute of the second neighboring point is set to the predicted attribute value will be referred to as prediction mode 2, and a prediction mode in which the attribute of the third neighboring point is set to the predicted attribute value will be referred to as prediction mode 3. In other words, a value of the prediction mode (or predictor index) equal to 0 may indicate that the attribute value is predicted by weighted averaging, and a value equal to 1 may indicate that the attribute value is predicted by the first neighboring node (i.e., neighboring point). A value equal to 2 may indicate that the attribute value is predicted by the second neighboring node, and a value equal to 3 may indicate that the attribute value is predicted by the third neighboring node.

[0314] According to an embodiment, a residual attribute value in prediction mode 0, a residual attribute value in prediction mode 1, a residual attribute value in prediction mode 2, and a residual attribute value in prediction mode 3 may be calculated, and a score or a double score may be calculated based on each residual attribute value. Then, the prediction mode with the smallest calculated score may be selected and set as the prediction mode of the corresponding point. Subsequently, a method of calculating the score will be described in detail.

[0315] For example, when the score calculated based on the residual attribute value obtained by setting the attribute of the second neighboring point as the predicted attribute value is the minimum value, the predictor index value is 2, that is, prediction mode 2 is selected as the prediction mode of the point.

[0316] In the above example, when it is assumed that among P3's neighboring points P2, P4 and P6, neighboring point P4 is closest to point P3 in terms of distance, neighboring point P6 is the next closest point, and neighboring point P2 is the farthest point, the first neighboring point can be P4, the second neighboring point can be P6, and the third neighboring point can be P2.

[0317] This is for better understanding of the exemplary embodiments of the present disclosure, and those skilled in the art may add, delete or change the values ​​assigned to the prediction modes, the number of candidate prediction modes and the prediction method. Therefore, the present disclosure is not limited to the above embodiments.

[0318] According to an embodiment, when a preset condition is met, a process of finding the most suitable prediction mode among a plurality of prediction modes and setting it as the prediction mode of the corresponding point may be performed. Therefore, when the preset condition is not met, a fixed prediction mode (e.g., prediction mode 0) in which the prediction attribute value is calculated by weighted average may be set as the prediction mode of the point without performing the process of finding the most suitable prediction mode. In an embodiment, this process is performed for each point.

[0319] According to an embodiment, when the difference of the attribute elements (e.g., R, G, B) between the neighboring points registered in the predictor of the point is greater than or equal to a preset threshold value (e.g., lifting_adaptive_prediction_threshold), or when the difference of the attribute elements (e.g., R, G, B) between the neighboring points registered in the predictor of the point is calculated and the sum of the maximum difference of the elements is greater than or equal to the preset threshold value, the preset condition may be satisfied for a specific point. For example, it is assumed that point P3 is a specific point, and points P2, P4, and P6 are registered as neighboring points of point P3. In addition, it is assumed that when the difference of the R, G, and B values ​​between points P2 and P4, the difference of the R, G, and B values ​​between points P2 and P6, and the difference of the R, G, and B values ​​between points P4 and P6 are calculated, the maximum difference of the R value is obtained between points P2 and P4, the maximum difference of the G value is obtained between points P4 and P6, and the maximum difference of the B value is obtained between points P2 and P6. In addition, it is assumed that among the maximum difference in R value (between P2 and P4), the maximum difference in G value (between P4 and P6), and the maximum difference in B value (between P2 and P6), the difference in R value between points P2 and P4 is the largest.

[0320] Under these assumptions, when the difference in R values ​​between points P2 and P4 is greater than or equal to a preset threshold, or when the sum of the difference in R values ​​between points P2 and P4, the difference in G values ​​between points P4 and P6, and the difference in B values ​​between points P2 and P6 is greater than or equal to the preset threshold, a process of finding the most appropriate prediction mode among a plurality of candidate prediction modes may be performed. In addition, a prediction mode (e.g., predIndex) may be signaled only when the difference in R values ​​between points P2 and P4 is greater than or equal to a preset threshold, or the sum of the difference in R values ​​between points P2 and P4, the difference in G values ​​between points P4 and P6, and the difference in B values ​​between points P2 and P6 is greater than or equal to a preset threshold.

[0321] According to another embodiment, when the maximum difference between the attribute values ​​(e.g., reflectivity) of the neighboring points registered in the predictor of the point is greater than or equal to a preset threshold (e.g., lifting_adaptive_prediction_threshold), the preset condition may be satisfied for a specific point. In addition, it is assumed that among the reflectivity difference between points P2 and P4, the reflectivity difference between points P2 and P6, and the reflectivity difference between points P4 and P6, the reflectivity difference between points P2 and P4 is the largest.

[0322] Under this assumption, when the reflectivity difference between points P2 and P4 is greater than or equal to a preset threshold, a process of finding the most suitable prediction mode among multiple candidate prediction modes can be performed. In addition, a prediction mode (e.g., predIndex) can be signaled only when the reflectivity difference between points P2 and P4 is greater than or equal to a preset threshold.

[0323] According to an embodiment, the prediction mode (e.g., predIndex) may be signaled in the attribute slice data. In another embodiment, when the prediction mode is not signaled, the sender may calculate the predicted attribute value based on the prediction mode set as the default mode (e.g., prediction mode 0), and calculate and send the residual attribute value based on the difference between the original attribute value and the predicted attribute value. The receiver may calculate the predicted attribute value based on the prediction mode set as the default mode (e.g., prediction mode 0), and restore the attribute value by adding the value to the received residual attribute value.

[0324] According to an embodiment, the threshold value may be signaled in the signaling information or directly input by the signaling processor 51005 (eg, the lifting_adaptive_prediction_threshold field signaled in the APS).

[0325] According to an embodiment, when a preset condition is satisfied for a specific point as described above, a predictor candidate may be generated. The predictor candidate is referred to as a prediction mode or a predictor index.

[0326] According to an embodiment, prediction modes 1 to 3 may be included in the predictor candidates. According to an embodiment, prediction mode 0 may be included or may not be included in the predictor candidates. According to an embodiment, at least one prediction mode not mentioned above may also be included in the predictor candidates.

[0327] Fig.18 is a diagram illustrating an embodiment of a method of selecting a prediction mode for attribute encoding according to an embodiment. According to an embodiment, Fig.18 The operation can be performed by the attribute information prediction unit 53009.

[0328] Fig.18 An embodiment of finding the most suitable attribute prediction mode for the i-th point based on prediction modes 0 to 3 is shown.

[0329] That is, the maximum difference between the attribute values ​​of the neighboring points registered in the predictor of the i-th point is calculated (step 55001), and it is determined whether the maximum difference calculated in step 55001 is greater than or equal to a preset threshold (step 55002).

[0330] When it is determined in step 55002 that the maximum difference is less than the preset threshold value according to an embodiment, the preset default prediction mode is set as the prediction mode of the point (step 55003). In an embodiment, the preset default prediction mode is prediction mode 0 (i.e., attribute value prediction based on weighted average). The preset default prediction mode may be a prediction mode different from prediction mode 0. According to an embodiment, when the preset default prediction mode is set as the prediction mode of the point, the prediction mode of the point is not signaled. In this case, it is assumed that the preset default prediction mode is known in advance by the sender / receiver.

[0331] When it is determined in step 55002 that the maximum difference is greater than or equal to the preset threshold according to an embodiment, a predictor candidate is generated (step 55004).

[0332] According to an embodiment, the number of predictor candidates generated in step 55004 is greater than 1. According to an embodiment, the predictor candidates generated in step 55004 are predictor candidates corresponding to prediction modes 0 to 3.

[0333] When predictor candidates are generated in step 55004, the process of selecting the optimal predictor is performed by applying a rate-distortion optimization (RDO) process.

[0334] To this end, when four predictor candidates corresponding to prediction modes 0 to 3 are generated in step 55004, a score or a dual score of each predictor is calculated (step 55005).

[0335] According to an embodiment, one of the four predictor candidates is set as a base predictor, and scores of the base predictor and other predictors are calculated. According to an embodiment, a predictor corresponding to prediction mode 0 is set as a base predictor.

[0336] The score of the base predictor is calculated as in Equation 5 below.

[0337] [Formula 5]

[0338] Double score = attrResidualQuant + kAttrPredLambdaR

[0339] *(quant.stepSize()>>kFixedPointAttributeShift)

[0340] The scores of other predictors are calculated as in Equation 6 below.

[0341] [Formula 6]

[0342] Double score = attrResidualQuant + idxBits * kAttrPredLambdaR

[0343] *(quant.stepSize()>>kFixedPointAttributeShift)

[0344] Here, idxBits=i+(i==lifting_max_num_direct_predictors-1?1:2.

[0345] In Equations 5 and 6, attrResidualQuant represents the quantized value of the residual attribute value of the attribute, and kAttrPredLambdaR represents a constant, which is 0.01 according to an embodiment. In addition, i (=0, 1, 2, ...) represents the ordinal position of the neighboring point (i.e., node), and quant.stepSize represents the attribute quantization size. kFixedPointAttributeShift is a constant. According to an embodiment, kFixedPointAttributeShift is 8. In this case, "quant.stepSize() >> kFixedPointAttributeShift" means shifting the attribute quantization size to the right by 8 bits. lifting_max_num_direct_predictors represents the maximum number of predictors to be used for prediction. Lifting_max_num_direct_predictors according to an embodiment is set to 3 by default and can be input as a user parameter or signaled in the signaling information by the signaling processor 51005.

[0346] The difference between Equation 5 and Equation 6 is that idxBits is not applied in the score calculation of the base predictor.

[0347] The predictor candidate having the lowest score among the scores of the four predictor candidates obtained by applying Equations 5 and 6 is found (step 55006). Then, the prediction mode corresponding to the predictor candidate having the lowest score is set as the prediction mode of the point (step 55007). That is, one of prediction modes 0 to 3 is set as the prediction mode of the point (step 55008). For example, when the score obtained by applying the first neighboring point is the lowest score, prediction mode 1 (i.e., predictor index 1) is set as the prediction mode of the point.

[0348] According to an embodiment, the prediction mode (e.g., predIndex) of the point set in step 55007 may be signaled in the attribute slice data.

[0349] When a predictor candidate (i.e., prediction mode) is selected from among multiple predictor candidates (i.e., multiple candidate prediction modes) by applying Formulas 5 and 6, since idxBits is not used when calculating the score of the base predictor corresponding to prediction mode 0, it is very likely that the base predictor corresponding to prediction mode 0 will be selected.

[0350] In this case, when the maximum difference between the attribute values ​​of the neighboring points registered in the predictor of the point is greater than or equal to the preset threshold, this means that the attribute difference between the neighboring points is large. However, when prediction mode 0 is selected as the prediction mode of the point, the predicted attribute value is obtained as the average of the values ​​obtained by multiplying the attributes of the neighboring points by the weights (i.e., the average of the values ​​obtained by multiplying the attributes of the neighboring points set in the predictor of each point by the weights calculated based on the distance to each neighboring point). Therefore, the bitstream size of the residual attribute value, which is the difference between the original attribute value and the predicted attribute value, may be larger than the bitstream size obtained from the registered neighboring points.

[0351] In this way, the predicted property value is affected by the predictor candidate selected from among the plurality of predictor candidates and affects the residual property value.

[0352] According to another embodiment of the present disclosure, in order to improve property efficiency, the most appropriate predictor candidate may be selected from other predictor candidates except the predictor corresponding to prediction mode 0.

[0353] For example, when the maximum difference between the attribute values ​​of the neighboring points registered in the predictor of the point is greater than or equal to a preset threshold, the prediction mode with the lowest score among the three predictor candidates, prediction modes 1 to 3 (i.e., prediction modes other than prediction mode 0) may be set as the prediction mode of the point. When the maximum difference is less than the preset threshold, prediction mode 0 may be set as the prediction mode of the point. Prediction mode 0 is a prediction mode that calculates the predicted attribute value by weighted averaging (i.e., the average value of the value obtained by multiplying the attribute of the neighboring points set in the predictor of each point by the weight calculated based on the distance to each neighboring point).

[0354] Fig.19 is a diagram illustrating another embodiment of a method for selecting a prediction mode for attribute encoding according to an embodiment. According to an embodiment, Fig.19 The operation can be performed by the attribute information prediction unit 53009.

[0355] Fig.19 An embodiment of finding the most suitable attribute prediction mode for the i-th point based on prediction modes 1 to 3 is shown.

[0356] That is, the maximum difference between the attribute values ​​of the neighboring points registered in the predictor of the point is calculated (step 57001), and it is determined whether the maximum difference calculated in step 57001 is greater than or equal to a preset threshold (step 57002).

[0357] When it is determined in step 57002 that the maximum difference is less than the preset threshold value according to an embodiment, the preset default prediction mode is set as the prediction mode of the point (step 57003). In an embodiment, the preset default prediction mode is prediction mode 0 (i.e., attribute value prediction based on weighted average). The preset default prediction mode may be a prediction mode different from prediction mode 0. According to an embodiment, when the preset default prediction mode is set as the prediction mode of the point, the prediction mode of the point is not signaled. In this case, it is assumed that the preset default prediction mode is known in advance by the sender / receiver.

[0358] When it is determined in step 57002 that the maximum difference is greater than or equal to the preset threshold according to an embodiment, a predictor candidate is generated (step 57004).

[0359] According to an embodiment, the number of predictor candidates generated in step 57004 is greater than 1. According to an embodiment, the predictor candidates generated in step 57004 are predictor candidates corresponding to prediction modes 1 to 3. That is, the predictor corresponding to prediction mode 0 is not included in the predictor candidates. In other words, the predictor candidate corresponds to a prediction mode in which the attribute value of the neighboring point registered in the point is set as the predicted attribute value.

[0360] When predictor candidates are generated in step 57004, the process of selecting the optimal predictor is performed by applying a rate-distortion optimization (RDO) process.

[0361] To this end, when three predictor candidates corresponding to prediction modes 1 to 3 are generated in step 57004, a score or a dual score of each predictor is calculated (step 57005).

[0362] The score for each predictor can be calculated as in Equation 7 below.

[0363] [Formula 7]

[0364] Double score = attrResidualQuant + kAttrPredLambdaR

[0365] *(quant.stepSize()>>kFixedPointAttributeShift)

[0366] In Formula 7, attrResidualQuant represents the quantized value of the residual attribute value of the attribute, and kAttrPredLambdaR represents a constant, which is 0.01 according to an embodiment. In addition, quant.stepSize represents the attribute quantization size. kFixedPointAttributeShift is a constant. According to an embodiment, kFixedPointAttributeShift is 8. In this case, "quant.stepSize() >> kFixedPointAttributeShift" means shifting the attribute quantization size to the right by 8 bits.

[0367] According to an embodiment, in Equation 7, at least one of kAttrPredLambdaR, quant.stepSize(), or kFixedPointAttributeShift may be omitted.

[0368] In another embodiment, the score of each predictor may be calculated by applying Equation 6.

[0369] In an embodiment of the present disclosure, the predictor candidate having the lowest score among the scores of the three predictor candidates obtained by applying Formula 7 is found (step 57006). Then, the prediction mode corresponding to the predictor candidate having the lowest score is set as the prediction mode of the point (step 57007). That is, one of prediction modes 1 to 3 is set as the prediction mode of the point (step 57008). For example, when the score obtained by applying the first neighboring point is the lowest score, prediction mode 1 (i.e., predictor index 1) is set as the prediction mode of the point.

[0370] According to an embodiment, the prediction mode (e.g., predIndex) of the point set in step 57007 may be signaled in the attribute slice data.

[0371] In this way, when the difference in attribute elements between neighboring points registered in a point is greater than or equal to a threshold value, prediction mode 0 that predicts attribute values ​​by weighted average calculation is not allowed to be used as a prediction mode for the point. Thus, the size of the residual attribute value of the point can be reduced.

[0372] In another embodiment, when three predictor candidates corresponding to prediction modes 1 to 3 are generated in step 57004, one of the three predictor candidates may be set as a base predictor. Then, Formula 5 may be used for the base predictor, and the scores of the other two predictors may be calculated using Formula 6. Then, the prediction mode corresponding to the predictor candidate with the lowest score among the scores of the three predictor candidates may be set as the prediction mode of the point, and the set prediction mode (e.g., predIndex) may be signaled in the attribute slice data.

[0373] According to an embodiment, an attribute value of a neighboring point registered in the point that is similar to the attribute value of the point may be estimated, a neighboring point having the most similar attribute value may be selected from among the neighboring points registered in the point, and a predictor candidate selecting the neighboring point may be set as a base predictor.

[0374] To verify the similarity of attributes according to an embodiment, Euclidean color distance, correlated color temperature, or the distance metric CIE94 defined by the Commission on Illumination (CIE) may be selectively used.

[0375] The Euclidean color distance according to an embodiment may be estimated in the following Equation 8.

[0376] [Formula 8]

[0377]

[0378] For CCT according to an embodiment, RGB values ​​may be changed into CIE (XYZ) values ​​to be normalized into chromaticity values, and then the CCT value may be calculated as shown in the following Formula 9.

[0379] [Formula 9]

[0380] X=(-0.14282)R+(1.54924)G+(-0.95641)B

[0381] Y=(-0.32466)R+(1.57837)G+(-0.73191)B=Brightness

[0382] Z=(-0.68202)R+(0.77073)G+(0.56332)B

[0383]

[0384] CCT=449n 3 +3525n 2 +6823.3n+5520.33

[0385]

[0386] CIE94 according to the embodiment may be estimated in the following Equation 10.

[0387] [Formula 10]

[0388]

[0389] ΔL=L1-L2

[0390]

[0391] Δa=a1-a2, Δb=b1-b2

[0392] S L =1,Sc=1+K1C1,SH=1+K2C1

[0393] In this way, a neighboring point having the most similar attribute value can be selected from among the attribute values ​​of neighboring points registered in the point that are similar to the attribute value of the point, and a predictor candidate corresponding to the selected neighboring point can be set as a base predictor.

[0394] According to an embodiment, predictor selection related option information for verifying attribute similarity may be signaled in signaling information. The predictor selection related option information according to an embodiment may include an attribute similarity check method (attribute_similarity_check_method_type) and a base predictor selection method (attribute_base_predictor selection_type). The signaling information according to an embodiment may be at least one of a sequence parameter set, an attribute parameter set, a tile parameter set, or an attribute slice header.

[0395] In this way, when the difference value of the attribute element between the neighboring points registered in the point is greater than or equal to the threshold value, the predictor candidate corresponding to the neighboring point whose attribute value is most similar to the attribute value of the point among the attribute values ​​of the neighboring points registered in the point can be set as the base predictor. Thus, the size of the residual attribute value of the point can be reduced.

[0396] The prediction mode set for each point through the above-mentioned processing and the residual attribute value in the set prediction mode are output to the residual attribute information quantization processor 53010.

[0397] According to an embodiment, the residual property information quantization processor 53010 may apply zero run length encoding to the input residual property value.

[0398] According to an embodiment of the present disclosure, quantization and zero-run-length encoding may be performed on the residual property value.

[0399] According to an embodiment, the arithmetic encoder 53011 applies arithmetic coding to the residual property value and the prediction mode output from the residual property information quantization processor 53010, and outputs the result as a property bitstream.

[0400] The geometry bit stream compressed and output by the geometry encoder 51006 and the attribute bit stream compressed and output by the attribute encoder 51007 are output to the sending processor 51008.

[0401] According to the embodiment, the transmission processor 51008 may execute Fig.12 The operations and / or sending methods of the sending processor 12012 are the same or similar to the operations and / or sending methods, and perform the same Figure 1 The operation and / or transmission method of the transmitter 10003 is the same as or similar to the operation and / or transmission method. Figure 1 or Fig.12 Description.

[0402] According to an embodiment, the transmission processor 51008 can separately transmit the geometry bit stream output from the geometry encoder 51006, the attribute bit stream output from the attribute encoder 51007, and the signaling bit stream output from the signaling processor 51005, or can multiplex the bit streams into one bit stream for transmission.

[0403] The transmission processor 51008 according to an embodiment may encapsulate the bitstream in a file or a segment (eg, a streaming segment), and then transmit the encapsulated bitstream through various networks such as a broadcast network and / or a broadband network.

[0404] The signaling processor 51005 according to the embodiment may generate and / or process signaling information and output it in the form of a bit stream to the transmission processor 51008. The signaling information generated and / or processed by the signaling processor 51005 will be provided to the geometry encoder 51006, the attribute encoder 51007 and / or the transmission processor 51008 for geometry encoding, attribute encoding and transmission processing. Alternatively, the signaling processor 51005 may receive the signaling information generated by the geometry encoder 51006, the attribute encoder 51007 and / or the transmission processor 51008.

[0405] In the present disclosure, signaling information may be signaled and sent on a per parameter set basis (sequence parameter set (SPS), geometry parameter set (GPS), attribute parameter set (APS), tile parameter set (TPS), etc.). In addition, it may be signaled and sent based on a coding unit of each image such as a slice or tile. In the present disclosure, the signaling information may include metadata (e.g., set values) related to the point cloud data, and may be provided to a geometry encoder 51006, an attribute encoder 51007, and / or a send processor 51008 for geometry encoding, attribute encoding, and send processing. Depending on the application, the signaling information may also be defined on a system side such as a file format, dynamic adaptive streaming over HTTP (DASH), or MPEG Media Transport (MMT), or on a wired interface side such as a High-Definition Multimedia Interface (HDMI), a display port, a Video Electronics Standards Association (VESA), or a CTA.

[0406] The method / apparatus according to the embodiment may signal relevant information to add / perform the operation of the embodiment. The signaling information according to the embodiment may be used in the sending device and / or the receiving device.

[0407] According to an embodiment of the present disclosure, information about the maximum number of predictors to be used for attribute prediction (lifting_max_num_direct_predictors), threshold information for enabling adaptive prediction of attributes (lifting_adaptive_prediction_threshold), and option information related to predictor selection (e.g., base predictor selection method (attribute_base_predictor selection_type), attribute similarity check method (attribute_similarity_check_method_type), etc.) can be signaled in at least one of a sequence parameter set, an attribute parameter set, a tile parameter set, or an attribute slice header. In addition, according to an embodiment, predictor index information (predIndex) indicating a prediction mode corresponding to a predictor candidate selected from among a plurality of predictor candidates can be signaled in attribute slice data.

[0408] Similar to the point cloud video encoder of the sending device, the point cloud video decoder of the receiving device performs the same or similar LOD generation. l Collection, LOD-based lThe decoder then decodes the received prediction mode and predicts the attribute value of the point according to the decoded prediction mode. In addition, after the received residual attribute value is decoded, the decoded residual attribute value can be added to the predicted attribute value to restore the attribute value of the point.

[0409] Fig. 20 is a diagram illustrating another exemplary point cloud receiving apparatus according to an embodiment.

[0410] The point cloud receiving device according to the embodiment may include a receiving processor 61001, a signaling processor 61002, a geometry decoder 61003, an attribute decoder 61004, and a post-processor 61005. According to the embodiment, the geometry decoder 61003 and the attribute decoder 61004 may be referred to as a point cloud video decoder. According to the embodiment, the point cloud video decoder may be referred to as a PCC decoder, a PCC decoding unit, a point cloud decoder, a point cloud decoding unit, etc.

[0411] The receiving processor 61001 according to the embodiment may receive a single bitstream, or may receive a geometry bitstream, an attribute bitstream, and a signaling bitstream separately. When receiving a file and / or a segment, the receiving processor 61001 according to the embodiment may decapsulate the received file and / or segment and output the decapsulated file and / or segment as a bitstream.

[0412] When a single bitstream is received (or decapsulated), the receiving processor 61001 according to the embodiment may demultiplex the geometry bitstream, the attribute bitstream and / or the signaling bitstream from the single bitstream. The receiving processor 61001 may output the demultiplexed signaling bitstream to the signaling processor 61002, output the geometry bitstream to the geometry decoder 61003, and output the attribute bitstream to the attribute decoder 61004.

[0413] When the geometry bitstream, attribute bitstream and / or signaling bitstream are received (or decapsulated) respectively, the receiving processor 61001 according to the implementation manner can transmit the signaling bitstream to the signaling processor 61002, the geometry bitstream to the geometry decoder 61003, and the attribute bitstream to the attribute decoder 61004.

[0414] The signaling processor 61002 may parse signaling information (e.g., information contained in SPS, GPS, APS, TPS, metadata, etc.) from the input signaling bit stream, process the parsed information, and provide the processed information to the geometry decoder 61003, the attribute decoder 61004, and the post-processor 61005. In another embodiment, the signaling information contained in the geometry slice header and / or the attribute slice header may also be parsed by the signaling processor 61002 before the corresponding slice data is decoded. That is, when Fig.16 As shown, when the sender divides the point cloud data into tiles and / or slices, the TPS includes the number of slices included in each tile, so the point cloud video decoder according to the embodiment can check the number of slices and quickly parse the information for parallel decoding.

[0415] Therefore, the point cloud video decoder according to the present disclosure can quickly parse the bitstream containing point cloud data when it receives the SPS with a reduced amount of data. The receiving device can decode the tile after receiving the tile, and can decode each slice based on the GPS and APS included in each tile. Thus, the decoding efficiency can be maximized.

[0416] That is, the geometry decoder 61003 can perform a decode operation on the compressed geometry bitstream based on the signaling information (e.g., geometry-related parameters). Fig.15 The geometry is reconstructed by performing the inverse process of the operation of the geometry encoder 51006. The geometry restored (or reconstructed) by the geometry decoder 61003 is provided to the attribute decoder 61004. The attribute decoder 61004 can perform the following steps on the compressed attribute bitstream based on the signaling information (e.g., attribute-related parameters) and the reconstructed geometry: Fig.15 The attributes are restored by inverse processing of the operation of the attribute encoder 51007. According to an embodiment, when Fig.16 As shown in , when the sender divides the point cloud data into tiles and / or slices, the geometry decoder 61003 and the attribute decoder 61004 perform geometry decoding and attribute decoding on a tile-by-tile and / or slice-by-slice basis.

[0417] Fig.21 is a detailed block diagram illustrating another example of a geometry decoder 61003 and an attribute decoder 61004 according to an embodiment.

[0418] Fig.21 The arithmetic decoder 63001, the octree reconstruction unit 63002, the geometric information prediction unit 63003, the inverse quantization processor 63004 and the coordinate inverse transformation unit 63005 included in the geometric decoder 61003 can perform Fig.11Some or all operations of the arithmetic decoder 11000, the octree synthesizer 11001, the surface approximation synthesis unit 11002, the geometry reconstruction unit 11003 and the coordinate inverse transformer 11004 may be performed, or Fig.13 The position restored by the geometry decoder 61003 is output to the post-processor 61005.

[0419] According to an embodiment, when information about the maximum number of predictors to be used for attribute prediction (lifting_max_num_direct_predictors), threshold information for enabling adaptive prediction of attributes (lifting_adaptive_prediction_threshold), option information related to predictor selection (e.g., base predictor selection method (attribute_base_predictor selection_type), attribute similarity check method (attribute_similarity_check_method_type), etc.) is signaled in at least one of a sequence parameter set (SPS), an attribute parameter set (APS), a tile parameter set (TPS), or an attribute slice header, they can be acquired by the signaling processor 61002 and provided to the attribute decoder 61004, or can be directly acquired by the attribute decoder 61004.

[0420] According to an embodiment, the attribute decoder 61004 may include an arithmetic decoder 63006, an LOD configuration unit 63007, a neighboring point configuration unit 63008, an attribute information prediction unit 63009, a residual attribute information inverse quantization processor 63010 and a color inverse transform processor 63011.

[0421] The arithmetic decoder 63006 according to the embodiment may perform arithmetic decoding on the input attribute bitstream. The arithmetic decoder 63006 may decode the attribute bitstream based on the reconstructed geometry. The arithmetic decoder 63006 performs the same Fig.11 The arithmetic decoder 11005 or Fig.13 The operation and / or decoding of the arithmetic decoder 13007 are the same or similar operations and / or decoding.

[0422] According to an embodiment, the attribute bitstream output from the arithmetic decoder 63006 may be decoded based on the reconstructed geometric information through one or a combination of two or more of RAHT decoding, LOD-based prediction transform decoding, and lifting transform decoding.

[0423] This has been described as an embodiment in which the transmitting device performs attribute compression by one or a combination of LOD-based predictive transform encoding and lifting transform encoding. Therefore, an embodiment in which the receiving device performs attribute decoding by one or a combination of LOD-based predictive transform decoding and lifting transform decoding will be described. The description of RAHT decoding of the receiving device will be omitted.

[0424] According to an embodiment, the attribute bitstream arithmetically decoded by the arithmetic decoder 63006 is provided to the LOD configuration unit 63007. According to an embodiment, the attribute bitstream provided from the arithmetic decoder 63006 to the LOD configuration unit 63007 may contain a prediction mode and a residual attribute value.

[0425] The LOD configuration unit 63007 according to the embodiment generates LOD in the same or similar manner as the LOD configuration unit 53007 of the transmitting device, and outputs the generated LOD to the neighboring point configuration unit 63008.

[0426] According to an embodiment, the LOD configuration unit 63007 divides and groups points into LODs. Here, groups with different LODs are referred to as LODs. l Here, l represents LOD and is an integer starting from 0. LOD0 is the set consisting of points with the largest distance between them. As l increases, the points belonging to LOD l The distance between the points decreases.

[0427] According to an embodiment, the prediction mode and the residual property value encoded by the transmitting device may be provided for each LOD or only for a leaf node.

[0428] In one embodiment, when the LOD value configuration unit 63007 generates the LOD l When gathering, the neighbor point configuration unit 63008 can be based on LOD l Set finds X (>0) nearest neighbors in a group with the same or lower LOD (i.e., the distance between nodes is large) and registers them in the predictor as a neighbor set. Here, X is the maximum number of points that can be set as neighbors (e.g., lifting_num_pred_nearest_neighbours). X can be input as a user parameter or received in signaling information such as SPS, APS, GPS, TPS, geometry slice header, or attribute slice header.

[0429] In another embodiment, the neighboring point configuration unit 63008 can select the neighboring points of each point based on signaling information such as SPS, APS, GPS, TPS, geometry slice header or attribute slice header. For this purpose, the neighboring point configuration unit 63008 can receive information from the signaling processor 61002.

[0430] For example, in Fig. 9 In , points P2, P4, and P6 can be selected as neighboring points of point (ie, node) P3 belonging to LOD1 and registered in the predictor of P3 as a neighbor set.

[0431] According to an embodiment, the attribute information prediction unit 63009 performs a process of predicting the attribute value of a specific point based on a prediction mode of the specific point. According to an embodiment, attribute prediction is performed on all points or at least some points of the reconstructed geometry.

[0432] The prediction mode of a specific point according to an embodiment may be one of prediction modes 0 to 3.

[0433] According to an embodiment, when the maximum difference between the attribute values ​​of neighboring points registered in the predictor of a point is less than a preset threshold, the attribute encoder of the transmitting side sets prediction mode 0 as the prediction mode of the point. When the maximum difference is greater than or equal to the preset threshold, the attribute encoder applies the RDO method to a plurality of candidate prediction modes and sets one of the candidate prediction modes as the prediction mode of the point. In an embodiment, this process is performed for each point.

[0434] According to an embodiment, when the maximum difference between the attribute values ​​of the neighboring points registered in the predictor of the point is greater than or equal to a preset threshold, the attribute encoder of the sender may set the predictor corresponding to prediction mode 0 as the base predictor. Then, the attribute encoder may apply Equation 5 to the base predictor, and apply Equation 6 to the predictors corresponding to the neighboring points of the point to calculate the score. Then, the attribute encoder may set the prediction mode corresponding to the predictor with the lowest score as the prediction mode of the point. The prediction mode of the point is set to one of prediction modes 0 to 3.

[0435] According to an embodiment, when the maximum difference between the attribute values ​​of the neighboring points registered in the predictor of the point is greater than or equal to a preset threshold, the attribute encoder of the sender can estimate the attribute values ​​of the neighboring points registered in the point that are similar to the attribute values ​​of the point, and set the predictor of the neighboring point with the most similar attribute value as the base predictor. Then, Formula 5 is applied to the base predictor, and Formula 6 can be applied to the predictors corresponding to the neighboring points other than the neighboring points whose predictors are set as the base predictors to calculate the scores. Then, the prediction mode corresponding to the predictor with the lowest score can be set as the prediction mode of the point. That is, the predictor corresponding to prediction mode 0 is not used to set the prediction mode of the point. In other words, the prediction mode of the point is set to one of prediction modes 1 to 3.

[0436] According to an embodiment, when the maximum difference between the attribute values ​​of the neighboring points registered in the predictor of the point is greater than or equal to the preset threshold, the attribute encoder of the transmitting side can calculate the score by applying Formula 7 to the predictors corresponding to the neighboring points of the point, and then set the prediction mode corresponding to the predictor with the lowest score as the prediction mode of the point. That is, the predictor corresponding to prediction mode 0 is not used to set the prediction mode of the point. In other words, the prediction mode of the point is set to one of prediction modes 1 to 3.

[0437] According to an embodiment, the prediction mode (predIndex) of the point selected by applying the RDO method may be signaled in the attribute slice data. Accordingly, the prediction mode of the point may be obtained from the attribute slice data.

[0438] According to an embodiment, the attribute information prediction unit 63009 may predict the attribute value of each point based on the prediction mode of each point set as described above.

[0439] For example, when it is assumed that the prediction mode of point P3 is prediction mode 0, the average of the values ​​obtained by multiplying the attributes of points P2, P4, and P6, which are neighboring points registered in the predictor of point P3, by weights (or normalized weights) may be calculated. The calculated average may be determined as the predicted attribute value of the point.

[0440] As another example, when it is assumed that the prediction mode of the point P3 is prediction mode 1, the attribute value of the point P4 which is a neighboring point registered in the predictor of the point P3 may be determined as the predicted attribute value of the point P3.

[0441] As another example, when it is assumed that the prediction mode of the point P3 is prediction mode 2, the attribute value of the point P6 which is a neighboring point registered in the predictor of the point P3 may be determined as the predicted attribute value of the point P3.

[0442] As another example, when it is assumed that the prediction mode of the point P3 is prediction mode 3, the attribute value of the point P2 which is a neighboring point registered in the predictor of the point P3 may be determined as the predicted attribute value of the point P3.

[0443] Once the attribute information prediction unit 63009 obtains the predicted attribute value of the point based on the prediction mode of the point, the residual attribute information inverse quantization processor 63010 restores the attribute value of the point by adding the predicted attribute value of the point predicted by the attribute information prediction unit 63009 to the received residual attribute value of the point, and then performs inverse quantization as the inverse process of the quantization process of the sending device.

[0444] In an embodiment, when the sender applies zero-run-length encoding to the residual property value of a point, the residual property information inverse quantization processor 63010 performs zero-run-length decoding on the residual property value of the point and then performs inverse quantization.

[0445] The attribute value restored by the residual attribute information inverse quantization processor 63010 is output to the color inverse transform processor 63011.

[0446] The color inverse transform processor 63011 performs inverse transform encoding on the inverse transform of the color value (or texture) included in the restored attribute value, and then outputs the attribute to the post-processor 61005. The color inverse transform processor 63011 performs the inverse transform encoding with Fig.11 The inverse color conversion unit 11010 or Fig.13 The operation and / or inverse transform encoding of the color inverse transform processor 13010 is the same as or similar to the operation and / or inverse transform encoding.

[0447] The post-processor 61005 can reconstruct the point cloud data by matching the position restored and output by the geometry decoder 61003 with the attribute restored and output by the attribute decoder 61004. In addition, when the reconstructed point cloud data is in units of tiles and / or slices, the post-processor 61005 can perform the inverse processing of the space segmentation of the sender based on the signaling information. Fig.16 (b) and Fig.16 As shown in (c) Fig.16 When the bounding box shown in (a) is divided into tiles and slices, the tiles and / or slices can be combined based on signaling information to restore the Fig.16 The bounding box shown in (a).

[0448] Fig. 22 An exemplary bitstream structure for transmitting / receiving point cloud data according to an embodiment is shown.

[0449] When the geometry bitstream, attribute bitstream and signaling bitstream according to the embodiment are configured as one bitstream, the bitstream may include one or more sub-bitstreams. The bitstream according to the embodiment may include a sequence parameter set (SPS) for sequence-level signaling, a geometry parameter set (GPS) for signaling geometry information encoding, one or more attribute parameter sets (APS) (APS0, APS1) for signaling attribute information encoding, a tile parameter set (TPS) for tile-level signaling, and one or more slices (slice 0 to slice n). That is, the bitstream of point cloud data according to the embodiment may include one or more tiles, and each tile may be a group of slices including one or more slices (slice 0 to slice n). The TPS according to the embodiment may contain information about each of the one or more tiles (e.g., coordinate value information and height / size information about the bounding box). Each slice may include a geometry bitstream (Geom0) and one or more attribute bitstreams (Attr0 and Attr1). For example, the first slice (slice 0) may include a geometry bitstream (Geom0 0 ) and one or more attribute bitstreams (Attr 0 、Attr1 0 ).

[0450] The geometry bitstream (or geometry slice) in each slice may be composed of a geometry slice header (geom_slice_header) and geometry slice data (geom_slice_data). According to an embodiment, the geom_slice_header may include identification information (geom_parameter_set_id) for a parameter set included in the GPS, a tile identifier (geom_tile_id) and a slice identifier (geom_slice_id), and information (geomBoxOrigin, geom_box_log2_scale, geom_max_node_size_log2, geom_num_points) about the data contained in the geometry slice data (geom_slice_data). geomBoxOrigin is geometry box origin information indicating the origin of the box of the geometry slice data, geom_box_log2_scale is information indicating the logarithmic scale of the geometry slice data, geom_max_node_size_log2 is information indicating the root geometry octree node size, and geom_num_points is information related to the number of points of the geometry slice data. According to an embodiment, geom_slice_data may include geometric information (or geometric data) about point cloud data in a corresponding slice.

[0451] Each attribute bitstream (or attribute slice) in each slice may be composed of an attribute slice header (attr_slice_header) and attribute slice data (attr_slice_data). According to an embodiment, attr_slice_header may include information about the corresponding attribute slice data. The attribute slice data may contain attribute information (or attribute data or attribute value) about the point cloud data in the corresponding slice. When there are multiple attribute bitstreams in a slice, each bitstream may contain different attribute information. For example, one attribute bitstream may contain attribute information corresponding to color, while another attribute stream may contain attribute information corresponding to reflectivity.

[0452] Fig.23 An exemplary bitstream structure of point cloud data according to an embodiment is shown.

[0453] Fig.24 The connection relationship between components in a bit stream of point cloud data according to an embodiment is illustrated.

[0454] Fig.23 and Fig.24 The bitstream structure of the point cloud data illustrated in can be represented by Fig. 22 The bit stream structure of the point cloud data is shown in FIG.

[0455] According to an embodiment, the SPS may include an identifier (seq_parameter_set_id) for identifying the SPS, and the GPS may include an identifier (geom_parameter_set_id) for identifying the GPS and an identifier (seq_parameter_set_id) indicating the activated SPS to which the GPS belongs. The APS may include an identifier (attr_parameter_set_id) for identifying the APS and an identifier (seq_parameter_set_id) indicating the activated SPS to which the APS belongs.

[0456] According to an embodiment, the geometry bitstream (or geometry slice) may include a geometry slice header and geometry slice data. The geometry slice header may include an identifier (geom_parameter_set_id) for activating GPS referenced by the corresponding geometry slice. In addition, the geometry slice header may also include an identifier (geom_slice_id) for identifying the corresponding geometry slice and / or an identifier (geom_tile_id) for identifying the corresponding tile. The geometry slice data may include geometry information belonging to the corresponding slice.

[0457] According to an embodiment, an attribute bitstream (or attribute slice) may include an attribute slice header and attribute slice data. The attribute slice header may include an identifier (attr_parameter_set_id) of an activated APS referenced by a corresponding attribute slice and an identifier (geom_slice_id) for identifying a geometric slice related to the attribute slice. The attribute slice data may include attribute information belonging to the corresponding slice.

[0458] That is, the geometry slices refer to the GPS, and the GPS refers to the SPS. In addition, the SPS lists the available attributes, assigns identifiers to each attribute, and identifies the decoding method. Based on the identifiers, the attribute slices are mapped to the output attributes. The attribute slices depend on the previous (decoded) geometry slices and the APS. The APS refers to the SPS.

[0459] According to an embodiment, parameters necessary for encoding point cloud data may be newly defined in a parameter set of point cloud data and / or a corresponding slice header. For example, when encoding of attribute information is performed, parameters may be added to the APS. When tile-based encoding is performed, parameters may be added to the tile and / or slice header.

[0460] like Fig. 22 , Fig.23 and Fig.24 As shown in , the bitstream of point cloud data provides tiles or slices so that the point cloud data can be segmented and processed by region. Depending on the implementation, the various regions of the bitstream may have different importance. Therefore, when the point cloud data is segmented into tiles, different filters (encoding methods) and different filter units may be applied to each tile. When the point cloud data is segmented into slices, different filters and different filter units may be applied to each tile.

[0461] When point cloud data is segmented and compressed, the transmitting device and the receiving device according to the embodiment can transmit and receive a bit stream in a high-level syntax structure for selective transmission of attribute information in the segmented regions.

[0462] According to the embodiment, the sending device can be as follows Fig. 22 , Fig.23 and Fig.24 The point cloud data is transmitted according to the bitstream structure as shown in . Therefore, a method for applying different encoding operations to important areas and using a good quality encoding method can be provided. In addition, efficient encoding and transmission can be supported according to the characteristics of the point cloud data, and attribute values ​​can be provided according to user needs.

[0463] The receiving device according to the embodiment may be as follows Fig. 22 , Fig.23 and Fig.24Point cloud data is received according to a bitstream structure as shown in . Therefore, different filtering (decoding) methods can be applied to each area (area divided into tiles or slices) instead of applying a complex decoding (filtering) method to the entire point cloud data. Therefore, better image quality in important areas is provided to the user, and appropriate waiting time of the system can be ensured.

[0464] As described above, tiles or slices are provided to process point cloud data by segmenting the point cloud data by region. When segmenting the point cloud data by region, an option to generate a different set of neighboring points for each region can be set. Thus, a selection method with low complexity and slightly lower reliability or a selection method with high complexity and high reliability can be provided.

[0465] At least one of the SPS, APS, TPS or attribute slice header for each slice according to an embodiment may include option information related to predictor selection. According to an embodiment, the predictor selection related option information may include a base predictor selection method (attribute_base_predictor selection_type) and an attribute similarity check method (attribute_similarity_check_method_type).

[0466] A field, which is a term used in the syntax of the present disclosure described below, may have the same meaning as a parameter or an element.

[0467] Fig.25 An embodiment of a syntax structure of a sequence parameter set (SPS) (seq_parameter_set_rbsp()) according to the present disclosure is shown. The SPS may include sequence information about a point cloud data bitstream. In particular, in this example, the SPS includes predictor selection related option information.

[0468] The SPS according to an embodiment may include a profile_idc field, a profile_compatibility_flags field, a level_idc field, a sps_bound_box_present_flag field, a sps_source_scale_factor field, a sps_seq_parameter_set_id field, a sps_num_attribute_sets field, and a sps_extension_present_flag field.

[0469] The profile_idc field indicates the profile to which the bitstream conforms.

[0470] The profile_compatibility_flags field equal to 1 may indicate that the bitstream conforms to the profile indicated by profile_idc.

[0471] The level_idc field indicates the level to which the bitstream conforms.

[0472] The sps_bounding_box_present_flag field indicates whether source bounding box information is signaled in the SPS. The source bounding box information may include offset and size information about the source bounding box. For example, an sps_bounding_box_present_flag field equal to 1 indicates that source bounding box information is signaled in the SPS. An sps_bounding_box_present_flag field equal to 0 indicates that source bounding box information is not signaled. The sps_source_scale_factor field indicates the scaling factor of the source point cloud.

[0473] The sps_seq_parameter_set_id field provides an identifier of the SPS for reference by other syntax elements.

[0474] The sps_num_attribute_sets field indicates the number of coded attributes in the bitstream.

[0475] The sps_extension_present_flag field specifies whether the sps_extension_data syntax structure is present in the SPS syntax structure. For example, a sps_extension_present_flag field equal to 1 specifies that the sps_extension_data syntax structure is present in the SPS syntax structure. A sps_extension_present_flag field equal to 0 specifies that the syntax structure is not present. When not present, the value of the sps_extension_present_flag field is inferred to be equal to 0.

[0476] When the sps_bounding_box_present_flag field is equal to 1, the SPS according to an embodiment may further include a sps_bounding_box_offset_x field, a sps_bounding_box_offset_y field, a sps_bounding_box_offset_z field, a sps_bounding_box_scale_factor field, a sps_bounding_box_size_width field, a sps_bounding_box_size_height field, and a sps_bounding_box_size_depth field.

[0477] The sps_bounding_box_offset_x field indicates the x offset of the source bounding box in Cartesian coordinates. When the x offset of the source bounding box does not exist, the value of sps_bounding_box_offset_x is 0.

[0478] The sps_bounding_box_offset_y field indicates the y offset of the source bounding box in Cartesian coordinates. When the y offset of the source bounding box does not exist, the value of sps_bounding_box_offset_y is 0.

[0479] The sps_bounding_box_offset_z field indicates the z offset of the source bounding box in Cartesian coordinates. When the z offset of the source bounding box does not exist, the value of sps_bounding_box_offset_z is 0.

[0480] The sps_bounding_box_scale_factor field indicates the scaling factor of the source bounding box in Cartesian coordinates. When the scaling factor of the source bounding box does not exist, the value of sps_bounding_box_scale_factor may be 1.

[0481] The sps_bounding_box_size_width field indicates the width of the source bounding box in Cartesian coordinates. When the width of the source bounding box does not exist, the value of the sps_bounding_box_size_width field may be 1.

[0482] The sps_bounding_box_size_height field indicates the height of the source bounding box in Cartesian coordinates. When the height of the source bounding box does not exist, the value of the sps_bounding_box_size_height field may be 1.

[0483] The sps_bounding_box_size_depth field indicates the depth of the source bounding box in Cartesian coordinates. When the depth of the source bounding box does not exist, the value of the sps_bounding_box_size_depth field may be 1.

[0484] An SPS according to an embodiment includes an iteration statement that is repeated as many times as the value of the sps_num_attribute_sets field. In an embodiment, i is initialized to 0 and incremented by 1 each time the iteration statement is executed. The iteration statement is repeated until the value of i becomes equal to the value of the sps_num_attribute_sets field. The iteration statement may include an attribute_dimension[i] field, an attribute_instance_id[i] field, an attribute_bitdepth[i] field, an attribute_cicp_colour_primaries[i] field, an attribute_cicp_transfer_characteristics[i] field, an attribute_cicp_matrix_coeffs[i] field, an attribute_cicp_video_full_range_flag[i] field, and a known_attribute_label_flag[i] field.

[0485] The attribute_dimension[i] field specifies the number of components of the i-th attribute.

[0486] The attribute_instance_id[i] field specifies the instance ID of the i-th attribute.

[0487] The attribute_bitdepth[i] field specifies the bit depth of the i-th attribute signal.

[0488] The attribute_cicp_colour_primaries[i] field indicates the chromaticity coordinates of the colour attribute source primaries of the i-th attribute.

[0489] The attribute_cicp_transfer_characteristics[i] field indicates either a reference electro-optical transfer characteristic function of the color attribute as a function of source input linear optical intensity with a nominal true value range of 0 to 1, or the inverse of the reference electro-optical transfer characteristic function as a function of output linear optical intensity.

[0490] The attribute_cicp_matrix_coeffs[i] field describes the matrix coefficients used when deriving the luma and chroma signals from the green, blue, and red or Y, Z, and X primaries.

[0491] The attribute_cicp_video_full_range_flag[i] field indicates the black level and range of luminance and chrominance signals derived from E′Y, E′PB and E′PR or E′R, E′G and E′B real-valued component signals.

[0492] The known_attribute_label_flag[i] field specifies whether the known_attribute_label field or the attribute_label_four_bytes field is signaled for the i-th attribute. For example, a value of the known_attribute_label_flag[i] field equal to 0 specifies that the known_attribute_label field is signaled for the i-th attribute. A known_attribute_label_flag[i] field equal to 1 specifies that the attribute_label_four_bytes field is signaled for the i-th attribute.

[0493] The known_attribute_label[i] field may specify the attribute type. For example, a known_attribute_label[i] field equal to 0 may specify that the i-th attribute is color. A known_attribute_label[i] field equal to 1 may specify that the i-th attribute is reflectivity. A known_attribute_label[i] field equal to 2 may specify that the i-th attribute is a frame index.

[0494] The attribute_label_four_bytes field indicates a known attribute type with a 4-byte code.

[0495] In this example, the attribute_label_four_bytes field indicates color when equal to 0 and indicates reflectivity when equal to 1.

[0496] According to an embodiment, when the sps_extension_present_flag field is equal to 1, the SPS may further include a sps_extension_data_flag field.

[0497] The sps_extension_data_flag field can have any value.

[0498] According to an embodiment, the SPS may further include predictor selection related option information. According to an embodiment, the predictor selection related option information may include a base predictor selection method (attribute_base_predictorselection_type) and an attribute similarity check method (attribute_similarity_check_method_type).

[0499] According to an embodiment, predictor selection related option information may be included in an iteration statement repeated as many times as the value of the above-mentioned sps_num_attribute_sets field.

[0500] That is, the iteration statement may include an attribute_base_predictor selection_type[i] field and an attribute_similarity_check_method_type[i] field.

[0501] The attribute_base_predictor selection_type[i] field may specify a method for selecting a base predictor for the i-th attribute. For example, an attribute_base_predictor selection_type[i] field equal to 0 indicates that a base predictor is selected based on a weighted average of neighbors, and an attribute_base_predictor selection_type[i] field equal to 1 indicates that a base predictor is selected based on attribute similarity.

[0502] The attribute_similarity_check_method_type[i] field may indicate an attribute similarity check method when referring to the attribute similarity of the i-th attribute. For example, an attribute_similarity_check_method_type[i] field equal to 0 indicates that a Euclidean color distance such as Equation 8 is used. An attribute_similarity_check_method_type[i] field equal to 1 indicates that a correlated color temperature such as Equation 9 is used. An attribute_similarity_check_method_type[i] field equal to 2 indicates that a CIE94 such as Equation 10 is used.

[0503] In this way, the attribute_base_predictor selection_type[i] field and the attribute_similarity_check_method_type[i] field can be signaled in the SPS.

[0504] Fig.26 An embodiment of a syntax structure of a geometry parameter set (GPS) (geometry_parameter_set()) according to the present disclosure is shown. The GPS according to the embodiment may include information on a method of encoding geometric information about point cloud data included in one or more slices.

[0505] According to an embodiment, the GPS may include a gps_geom_parameter_set_id field, a gps_seq_parameter_set_id field, a gps_box_present_flag field, a unique_geometry_points_flag field, a neighbor_context_restriction_flag field, an inferred_direct_coding_mode_enabled_flag field, a bitwise_occupancy_coding_flag field, an adjacent_child_contextualization_enabled_flag field, a log2_neighbour_avail_boundary field, a log2_intra_pred_max_node_size field, a log2_trisoup_node_size field, and a gps_extension_present_flag field.

[0506] The gps_geom_parameter_set_id field provides an identifier of the GPS for reference by other syntax elements.

[0507] The gps_seq_parameter_set_id field specifies the value of sps_seq_parameter_set_id for the activated SPS.

[0508] The gps_box_present_flag field specifies whether additional bounding box information is provided in the geometry slice header that references the current GPS. For example, a gps_box_present_flag field equal to 1 may specify that additional bounding box information is provided in the geometry header that references the current GPS. Thus, when the gps_box_present_flag field is equal to 1, the GPS may also include a gps_gsh_box_log2_scale_present_flag field.

[0509] The gps_gsh_box_log2_scale_present_flag field specifies whether the gps_gsh_box_log2_scale field is signaled in each geometry slice header that references the current GPS. For example, a gps_gsh_box_log2_scale_present_flag field equal to 1 may specify that the gps_gsh_box_log2_scale field is signaled in each geometry slice header that references the current GPS. As another example, a gps_gsh_box_log2_scale_present_flag field equal to 0 may specify that the gps_gsh_box_log2_scale field is not signaled in each geometry slice header and that a common scaling of all slices is signaled in the gps_gsh_box_log2_scale field of the current GPS.

[0510] When the gps_gsh_box_log2_scale_present_flag field is equal to 0, GPS may also include a gps_gsh_box_log2_scale field.

[0511] The gps_gsh_box_log2_scale field indicates the common scaling factor of the bounding box origin of all slices referenced to the current GPS.

[0512] The unique_geometry_points_flag field indicates whether all output points have unique locations. For example, a unique_geometry_points_flag field equal to 1 indicates that all output points have unique locations. A unique_geometry_points_flag field equal to 0 indicates that two or more of the output points may have the same location in all slices referenced to the current GPS.

[0513] The neighbor_context_restriction_flag field indicates the context used for octree occupancy coding. For example, a neighbor_context_restriction_flag field equal to 0 indicates that the octree occupancy coding uses the context determined from the six neighboring parent nodes. A neighbor_context_restriction_flag field equal to 1 indicates that the octree occupancy coding uses only the context determined from the sibling nodes.

[0514] The inferred_direct_coding_mode_enabled_flag field indicates whether a direct_mode_flag field is present in the geometry node syntax. For example, an inferred_direct_coding_mode_enabled_flag field equal to 1 indicates that a direct_mode_flag field may be present in the geometry node syntax. For example, an inferred_direct_coding_mode_enabled_flag field equal to 0 indicates that a direct_mode_flag field is not present in the geometry node syntax.

[0515] The bitwise_occupancy_coding_flag field indicates whether the bitwise contextualization of the syntax element occupancy map is used to encode the geometry node occupancy. For example, a bitwise_occupancy_coding_flag field equal to 1 indicates that the bitwise contextualization of the syntax element ocupancy_map is used to encode the geometry node occupancy. For example, a bitwise_occupancy_coding_flag field equal to 0 indicates that the dictionary-coded syntax element occupancy_byte is used to encode the geometry node occupancy.

[0516] The adjacent_child_contextualization_enabled_flag field indicates whether the adjacent children of the adjacent octree node are used for bitwise occupancy contextualization. For example, an adjacent_child_contextualization_enabled_flag field equal to 1 indicates that the adjacent children of the adjacent octree node are used for bitwise occupancy contextualization. For example, an adjacent_child_contextualization_enabled_flag field equal to 0 indicates that the children of the adjacent octree node are not used for occupancy contextualization.

[0517] The log2_neighbour_avail_boundary field specifies the value of the variable NeighbAvailBoundary used in the decoding process as follows:

[0518] NeighbAvailBoundary=2 log2_neighbour_avail_boundary .

[0519] For example, when the neighbor_context_restriction_flag field is equal to 1, the NeighbAvailabilityMask may be set equal to 1. For example, when the neighbor_context_restriction_flag field is equal to 0, the NeighbAvailabilityMask may be set equal to 1. <log2_neighbour_avail_boundary。

[0520] The log2_intra_pred_max_node_size field specifies the size of octree nodes that are eligible to occupy intra prediction.

[0521] The log2_trisoup_node_size field specifies the variable TrisoupNodeSize as the size of the triangle nodes as follows:

[0522] TrisoupNodeSize=1< <log2_trisoup_node_size。

[0523] The gps_extension_present_flag field specifies whether a gps_extension_data syntax structure is present in the GPS syntax structure. For example, a gps_extension_present_flag equal to 1 specifies that a gps_extension_data syntax structure is present in the GPS syntax. For example, a gps_extension_present_flag equal to 0 specifies that the syntax structure is not present in the GPS syntax.

[0524] When the value of the gps_extension_present_flag field is equal to 1, the GPS according to an embodiment may further include a gps_extension_data_flag field.

[0525] The gps_extension_data_flag field can have any value. Its presence and value do not affect the conformance of the decoder to the profile.

[0526] Fig. 27An embodiment of a syntax structure of an attribute parameter set (APS) (attribute_parameter_set()) according to the present disclosure is shown. An APS according to an embodiment may include information about a method for encoding attribute information in point cloud data included in one or more slices. According to an embodiment, an APS may include predictor selection related option information.

[0527] The APS according to an embodiment may include an aps_attr_parameter_set_id field, an aps_seq_parameter_set_id field, an attr_coding_type field, an aps_attr_initial_qp field, an aps_attr_chroma_qp_offset field, an aps_slice_qp_delta_present_flag field, and an aps_flag field.

[0528] The aps_attr_parameter_set_id field provides an identifier of the APS for reference by other syntax elements.

[0529] The aps_seq_parameter_set_id field specifies the value of sps_seq_parameter_set_id for the activated SPS.

[0530] The attr_coding_type field indicates the coding type used for the attribute.

[0531] In this example, an attr_coding_type field equal to 0 indicates prediction weight boosting as the encoding type. An attr_coding_type field equal to 1 indicates RAHT as the encoding type. An attr_coding_type field equal to 2 indicates fixed weight boosting.

[0532] The aps_attr_initial_qp field specifies the initial value of the variable SliceQp for each slice of the referenced APS. The initial value of SliceQp is modified at the attribute slice segment level when a non-zero value of slice_qp_delta_luma or slice_qp_delta_chroma is decoded.

[0533] The aps_attr_chroma_qp_offset field specifies the offset of the initial quantization parameter signaled by the syntax aps_attr_initial_qp.

[0534] The aps_slice_qp_delta_present_flag field specifies whether the ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma syntax elements are present in the attribute slice header (ASH). For example, an aps_slice_qp_delta_present_flag field equal to 1 specifies that the ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma syntax elements are present in the ASH. For example, an aps_slice_qp_delta_present_flag field equal to 0 specifies that the ash_attr_qp_delta_luma and ash_attr_qp_delta_chroma syntax elements are not present in the ASH.

[0535] When the value of the attr_coding_type field is 0 or 2, that is, when the coding type is prediction weight boosting or fixed weight boosting, the APS according to the embodiment may further include a lifting_num_pred_nearest_neighbours field, a lifting_max_num_direct_predictors field, a lifting_search_range field, a lifting_lod_regular_sampling_enabled_flag field, and a lifting_num_detail_levels_minus1 field.

[0536] The lifting_num_pred_nearest_neighbours field specifies the maximum number of nearest neighbors that will be used for prediction.

[0537] The lifting_max_num_direct_predictors field specifies the maximum number of predictors that will be used for direct prediction. The value of the variable MaxNumPredictors used in the decoding process is as follows:

[0538] MaxNumPredictors=lifting_max_num_direct_predictors field+1.

[0539] The lifting_lifting_search_range field specifies the search range used to determine the nearest neighbors that will be used for predictions and to build distance-based levels of detail.

[0540] The lifting_num_detail_levels_minus1 field specifies the number of detail levels used for attribute encoding.

[0541] The lifting_lod_regular_sampling_enabled_flag field specifies whether the level of detail (LOD) is constructed by a regular sampling strategy. For example, lifting_lod_regular_sampling_enabled_flag equal to 1 specifies that the level of detail (LOD) is constructed by using a regular sampling strategy. Lifting_lod_regular_sampling_enabled_flag equal to 0 specifies that a distance-based sampling strategy is used instead.

[0542] An APS according to an embodiment includes an iteration statement that is repeated as many times as the value of the lifting_num_detail_levels_minus1 field. In an embodiment, the index (idx) is initialized to 0 and incremented by 1 each time the iteration statement is executed, and the iteration statement is repeated until the index (idx) is greater than the value of the lifting_num_detail_levels_minus1 field. The iteration statement may include the lifting_sampling_period[idx] field when the value of the lifting_lod_decimation_enabled_flag field is true (e.g., 1), and may include the lifting_sampling_distance_squared[idx] field when the lifting_lod_decimation_enabled_flag field is false (e.g., 0).

[0543] The lifting_sampling_period[idx] field specifies the sampling period of the level of detail idx.

[0544] The lifting_sampling_distance_squared[idx] field specifies the square of the sampling distance for the level of detail idx.

[0545] When the value of the attr_coding_type field is 0, that is, when the coding type is prediction weight lifting, the APS according to an embodiment may further include a lifting_adaptive_prediction_threshold field and a lifting_intra_lod_prediction_num_layers field.

[0546] The lifting_adaptive_prediction_threshold field specifies the threshold for enabling adaptive prediction.

[0547] The lifting_intra_lod_prediction_num_layers field specifies the number of LOD layers that can reference decoded points in the same LOD layer to generate a prediction value for a target point. For example, a lifting_intra_lod_prediction_num_layers field equal to num_detail_levels_minus 1 plus 1 indicates that a target point can reference decoded points in the same LOD layer for all LOD layers. For example, a lifting_intra_lod_prediction_num_layers field equal to 0 indicates that a target point may not reference decoded points in the same LoD layer for any LoD layer.

[0548] The aps_extension_present_flag field specifies whether an aps_extension_data syntax structure is present in the APS syntax structure. For example, an aps_extension_present_flag field equal to 1 specifies that an aps_extension_data syntax structure is present in the APS syntax structure. For example, an aps_extension_present_flag field equal to 0 specifies that the syntax structure is not present in the APS syntax structure.

[0549] When a value of the aps_extension_present_flag field is 1, the APS according to an embodiment may further include an aps_extension_data_flag field.

[0550] The aps_extension_data_flag field can have any value. Its presence and value do not affect the conformance of the decoder to the profile.

[0551] The APS according to an embodiment may further include predictor selection related option information.

[0552] When the value of the attr_coding_type field is 0 or 2, that is, when the coding type is "prediction weight boost" or "fixed weight boost", the APS according to an embodiment may further include an attribute_base_predictor selection_type field and an attribute_similarity_check_method_type field.

[0553] The attribute_base_predictor selection_type field may specify a method of selecting a base predictor. For example, an attribute_base_predictor selection_type field equal to 0 indicates that a base predictor is selected based on a weighted average of neighbors, and an attribute_base_predictor selection_type field equal to 1 indicates that a base predictor is selected based on attribute similarity.

[0554] The attribute_similarity_check_method_type field may indicate an attribute similarity check method. For example, an attribute_similarity_check_method_type field equal to 0 indicates that a Euclidean color distance such as Equation 8 is used. An attribute_similarity_check_method_type field equal to 1 indicates that a correlated color temperature such as Equation 9 is used. An attribute_similarity_check_method_type field equal to 2 indicates that a CIE94 such as Equation 10 is used.

[0555] In this way, the attribute_base_predictor selection_type field and the attribute_similarity_check_method_type field can be signaled in the APS.

[0556] Fig.28 An embodiment of a grammatical structure of a tile parameter set (TPS) (tile_parameter_set()) according to the present disclosure is shown. According to an embodiment, a TPS may be referred to as a tile list. The TPS according to an embodiment includes information related to each tile. In particular, in this example, the TPS includes predictor selection related option information.

[0557] The TPS according to an embodiment includes a num_tiles field.

[0558] The num_tiles field indicates the number of tiles signaled for the bitstream. When not present, num_tiles is inferred to be 0.

[0559] The TPS according to an embodiment includes an iteration statement that repeats as many times as the value of the num_tiles field. In an embodiment, i is initialized to 0 and incremented by 1 each time the iteration statement is executed. The iteration statement is repeated until the value of i becomes equal to the value of the num_tiles field. The iteration statement may include a tile_bounding_box_offset_x[i] field, a tile_bounding_box_offset_y[i] field, a tile_bounding_box_offset_z[i] field, a tile_bounding_box_size_width[i] field, a tile_bounding_box_size_height[i] field, and a tile_bounding_box_size_depth[i] field.

[0560] The tile_bounding_box_offset_x[i] field indicates the x offset of the i-th tile in Cartesian coordinates.

[0561] The tile_bounding_box_offset_y[i] field indicates the y offset of the i-th tile in Cartesian coordinates.

[0562] The tile_bounding_box_offset_z[i] field indicates the z offset of the i-th tile in Cartesian coordinates.

[0563] The tile_bounding_box_size_width[i] field indicates the width of the i-th tile in Cartesian coordinates.

[0564] The tile_bounding_box_size_height[i] field indicates the height of the i-th tile in Cartesian coordinates.

[0565] The tile_bounding_box_size_depth[i] field indicates the depth of the i-th tile in Cartesian coordinates.

[0566] The TPS according to an embodiment may further include predictor selection related option information.

[0567] According to an embodiment, predictor selection related option information may be included in an iteration statement that is repeated as many times as the value of the above-mentioned num_tiles field.

[0568] That is, the iteration statement may include an attribute_base_predictor selection_type[i] field and an attribute_similarity_check_method_type[i] field.

[0569] The attribute_base_predictor selection_type[i] field may specify a method for selecting a base predictor in the i-th tile. For example, an attribute_base_predictor selection_type[i] field equal to 0 indicates that a base predictor is selected based on a weighted average of neighbors, and an attribute_base_predictor selection_type[i] field equal to 1 indicates that a base predictor is selected based on attribute similarity.

[0570] The attribute_similarity_check_method_type[i] field may indicate an attribute similarity check method in the i-th tile. For example, an attribute_similarity_check_method_type[i] field equal to 0 indicates that a Euclidean color distance such as Equation 8 is used. An attribute_similarity_check_method_type[i] field equal to 1 indicates that a correlated color temperature such as Equation 9 is used. An attribute_similarity_check_method_type[i] field equal to 2 indicates that a CIE94 such as Equation 10 is used.

[0571] In this way, the attribute_base_predictor selection_type[i] field and the attribute_similarity_check_method_type[i] field can be signaled in the TPS.

[0572] Fig.29 An implementation of the syntax structure of a geometry slice bitstream() according to the present disclosure is shown.

[0573] A geometry slice bitstream (geometry_slice_bitstream()) according to an embodiment may include a geometry slice header (geometry_slice_header()) and geometry slice data (geometry_slice_data()).

[0574] Fig.30An embodiment of a syntax structure of a geometry slice header (geometry_slice_header()) according to the present disclosure is shown.

[0575] The bitstream transmitted by the transmitting device (or the bitstream received by the receiving device) according to the embodiment may include one or more slices. Each slice may include a geometry slice and an attribute slice. The geometry slice includes a geometry slice header (GSH). The attribute slice includes an attribute slice header (ASH).

[0576] The geometry slice header (geometry_slice_header()) according to an embodiment may include a gsh_geom_parameter_set_id field, a gsh_tile_id field, a gsh_slice_id field, a gsh_max_node_size_log2 field, a gsh_num_points field, and a byte_alignment() field.

[0577] When the value of the gps_box_present_flag field included in GPS is "true" (e.g., 1) and the value of the gps_gsh_box_log2_scale_present_flag field is "true" (e.g., 1), the geometry slice header (geometry_slice_header()) according to an embodiment may also include a gsh_box_log2_scale field, a gsh_box_origin_x field, a gsh_box_origin_y field, and a gsh_box_origin_z field.

[0578] The gsh_geom_parameter_set_id field specifies the value of the gps_geom_parameter_set_id of the activated GPS.

[0579] The gsh_tile_id field specifies the value of the tile id referenced by GSH.

[0580] The gsh_slice_id field specifies the id of the slice referenced by other syntax elements.

[0581] The gsh_box_log2_scale field specifies the scaling factor used for the bounding box origin of the slice.

[0582] The gsh_box_origin_x field specifies the x value of the bounding box origin scaled by the value of the gsh_box_log2_scale field.

[0583] The gsh_box_origin_y field specifies the y value of the bounding box origin scaled by the value of the gsh_box_log2_scale field.

[0584] The gsh_box_origin_z field specifies the z value of the bounding box origin scaled by the value of the gsh_box_log2_scale field.

[0585] The gsh_max_node_size_log2 field specifies the size of the root geometry octree node.

[0586] The gsh_points_number field specifies the number of code points in the slice.

[0587] Fig.31 An embodiment of a syntax structure of geometry slice data (geometry_slice_data()) according to the present disclosure is shown. The geometry slice data (geometry_slice_data()) according to an embodiment may carry a geometry bitstream belonging to a corresponding slice.

[0588] According to an embodiment, geometry_slice_data() may include a first iteration statement that is repeated as many times as the value of MaxGeometryOctreeDepth. In an embodiment, depth is initialized to 0 and incremented by 1 each time the iteration statement is executed, and the first iteration statement is repeated until depth becomes equal to MaxGeometryOctreeDepth. The first iteration statement may include a second loop statement that is repeated as many times as the value of NumNodesAtDepth. In an embodiment, nodeidx is initialized to 0 and incremented by 1 each time the iteration statement is executed. The second iteration statement is repeated until nodeidx becomes equal to NumNodesAtDepth. The second iteration statement may include xN=NodeX[depth][nodeIdx], yN=NodeY[depth][nodeIdx], zN=NodeZ[depth][nodeIdx] and geometry_node(depth, nodedx, xN, yN, zN). MaxGeometryOctreeDepth indicates the maximum value of the geometry octree depth, and NumNodesAtDepth[depth] indicates the number of nodes to be decoded at the corresponding depth. The variables NodeX[depth][nodedx], NodeY[depth][nodeIdx], and NodeZ[depth][nodeIdx] indicate the x, y, z coordinates of the nodeIdx-th node in decoding order at a given depth. The geometry bitstream for the node at depth is sent via geometry_node(depth, nodeIdx, xN, yN, zN).

[0589] When the value of the log2_trisoulp_node_size field is greater than 0, the geometry slice data (geometry_slice_data()) according to an embodiment may further include geometry_trisoulp_data(). That is, when the size of the triangle node is greater than 0, the geometry bitstream subjected to trisoup geometry encoding is transmitted through geometry_trisoup_data().

[0590] Fig.32 An implementation of a syntax structure of attribute_slice_bitstream() according to the present disclosure is shown.

[0591] An attribute slice bitstream (attribute_slice_bitstream()) according to an embodiment may include an attribute slice header (attribute_slice_header()) and attribute slice data (attribute_slice_data()).

[0592] Fig.33 An embodiment of the syntax structure of the attribute slice header (geometry_slice_header()) according to the present disclosure is shown. The attribute slice header according to the embodiment includes signaling information of the corresponding attribute slice. In particular, in this example, the attribute slice header includes predictor selection related option information.

[0593] The attribute slice header (attribute_slice_header()) according to an embodiment may include an ash_attr_parameter_set_id field, an ash_attr_sps_attr_idx field, and an ash_attr_geom_slice_id field.

[0594] When a value of the aps_slice_qp_delta_present_flag field of the APS is 'true' (for example, 1), the attribute slice header (attribute_slice_header()) according to an embodiment may further include an ash_qp_delta_luma field and an ash_qp_delta_chroma field.

[0595] The ash_attr_parameter_set_id field specifies the aps_attr_parameter_set_id field of the currently activated APS (e.g., Fig. 27 The value of the aps_attr_parameter_set_id field included in the APS described in .

[0596] The ash_attr_sps_attr_idx field identifies an attribute set in the currently active SPS. The value of the ash_attr_sps_attr_idx field ranges from 0 to the sps_num_attribute_sets field included in the currently active SPS.

[0597] The ash_attr_geom_slice_id field specifies the value of the gsh_slice_id field in the current geometry slice header.

[0598] The ash_qp_delta_luma field specifies the luma delta qp derived from the initial slice quantization parameter (qp) in the activated attribute parameter set.

[0599] The ash_qp_delta_chroma field specifies the chroma delta qp derived from the initial slice qp in the activated attribute parameter set.

[0600] The attribute slice header (attribute_slice_header()) according to an embodiment may further include predictor selection related option information, for example, an attribute_base_predictor selection_type field and an attribute_similarity_check_method_type field.

[0601] The attribute_base_predictor selection_type field may specify a method of selecting a base predictor. For example, an attribute_base_predictor selection_type field equal to 0 indicates that a base predictor is selected based on a weighted average of neighbors, and an attribute_base_predictor selection_type field equal to 1 indicates that a base predictor is selected based on attribute similarity.

[0602] The attribute_similarity_check_method_type field may indicate an attribute similarity check method. For example, an attribute_similarity_check_method_type field equal to 0 indicates that a Euclidean color distance such as Equation 8 is used. An attribute_similarity_check_method_type field equal to 1 indicates that a correlated color temperature such as Equation 9 is used. An attribute_similarity_check_method_type field equal to 2 indicates that a CIE94 such as Equation 10 is used.

[0603] In this way, the attribute_base_predictor selection_type field and the attribute_similarity_check_method_type field can be signaled in the attribute slice header (attribute_slice_header()).

[0604] Fig.34An embodiment of a syntax structure of attribute slice data (attribute_slice_data()) according to the present disclosure is shown. Attribute slice data (attribute_slice_data()) according to an embodiment may carry an attribute bitstream belonging to a corresponding slice.

[0605] exist Fig.34 In the attribute slice data (attribute_slice_data()), dimension = attribute_dimension [ash_attr_sps_attr_idx] represents the attribute dimension (attribute_dimension) of the attribute set identified by the ash_attr_sps_attr_idx field in the corresponding attribute slice header. Attribute_dimension refers to the number of components that make up the attribute. The attribute according to the embodiment represents reflectivity, color, etc. Therefore, among the attributes, the number of components is different. For example, the attribute corresponding to color can have three color components (e.g., RGB). Therefore, the attribute corresponding to reflectivity can be a one-dimensional attribute, and the attribute corresponding to color can be a three-dimensional attribute.

[0606] Attributes according to an embodiment may be attribute encoded dimension by dimension.

[0607] For example, an attribute corresponding to reflectivity and an attribute corresponding to color may be attribute encoded separately. According to an embodiment, the attributes may be attribute encoded together, regardless of the dimension. For example, an attribute corresponding to reflectivity and an attribute corresponding to color may be attribute encoded together.

[0608] exist Fig.34 In , zerorun specifies the number of zeros before the residual.

[0609] exist Fig.34 In the formula (i), i represents the i-th value of the attribute. According to an embodiment, the attr_coding_type field and the lifting_adaptive_prediction_threshold field are signaled in the APS.

[0610] Fig.34 The MaxNumPredictors is a variable used in the point cloud data decoding process and can be obtained based on the value of the lifting_adaptive_prediction_threshold field signaled in the APS as follows:

[0611] MaxNumPredictors=lifting_max_num_direct_predictors field+1.

[0612] Here, the lifting_max_num_direct_predictors field indicates the maximum number of predictors to be used for direct prediction.

[0613] According to an embodiment, predIndex[i] specifies a predictor index (or prediction mode) to decode the i-th point value of the attribute. The value of predIndex[i] ranges from 0 to the value of the lifting_max_num_direct_predictors field.

[0614] The variable MaxPredDiff[i] according to an embodiment may be calculated as follows.

[0615]

[0616] Here, let k i is the set of k nearest neighbors of the current point i, and let are their decoded / reconstructed attribute values. The number of nearest neighbors k i Should be in the range of 1 to lifting_num_pred_nearest_neighbours. According to an embodiment, the decoding / reconstruction property values ​​of the neighbors are derived according to the prediction lifting decoding process.

[0617] The lifting_num_pred_nearest_neighbours field is signaled in the APS and indicates the maximum number of nearest neighbors that will be used for prediction.

[0618] Fig.35 is a flow chart of a method of transmitting point cloud data according to an embodiment.

[0619] According to the implementation manner, the point cloud data sending method may include: step 71001 of encoding the geometry contained in the point cloud data, step 71002 of encoding the attributes contained in the point cloud data based on the input and / or reconstructed geometry, and step 71003 of sending a bit stream including the encoded geometry, the encoded attributes and signaling information.

[0620] Steps 71001 and 71002 of encoding the geometry and attributes contained in the point cloud data may be performed Figure 1 Point cloud video encoder 10002, Figure 2 Encoding processing 20001, Figure 4 Point cloud video encoder, Fig.12Point cloud video encoder, Fig.14 Point cloud coding processing, Fig.15 Point cloud video encoder or Fig.17 Some or all of the operations of the geometry encoder and attribute encoder.

[0621] According to an embodiment, the prediction mode of the specific point set in step 71002 may be one of prediction mode 0, prediction mode 1, prediction mode 2 or prediction mode 3.

[0622] According to an embodiment, when the maximum difference between the attribute values ​​of the nearest neighboring points registered in the predictor of the corresponding point to be encoded is less than a predefined threshold, step 71002 sets prediction mode 0 as the prediction mode of the point. According to an embodiment, when the maximum difference between the attribute values ​​of the nearest neighboring points registered in the predictor of the point to be encoded is equal to or greater than a predefined threshold, step 71002 applies a rate-distortion optimization (RDO) process to a plurality of candidate prediction modes and sets one of the plurality of candidate prediction modes as the prediction mode of the point. In an embodiment, this process is performed for each point.

[0623] According to an embodiment, when the maximum difference between the attribute values ​​of the nearest neighboring points registered in the predictor of the point to be encoded is equal to or greater than a predefined threshold, step 71002 sets the predictor corresponding to prediction mode 0 as the basic predictor, and calculates the score (double score) by applying equation 5 to the basic predictor and equation 6 to the predictor corresponding to the neighboring point of the point to be encoded. Then, step 71002 sets the prediction mode corresponding to the predictor having the minimum score among the calculated scores as the prediction mode of the point. According to an embodiment, the prediction mode set to the point may be one of prediction mode 0 to prediction mode 3.

[0624] According to another embodiment, when the maximum difference between the attribute values ​​of the nearest neighboring points registered in the predictor of the point to be encoded is equal to or greater than a predefined threshold, step 71002 estimates the similar attribute value between the attribute value of the point and the attribute value of the neighboring points registered in the point, and sets the predictor corresponding to the neighboring point with the most similar attribute value in the similar attribute value as the basic predictor, and then calculates the score (double score) by applying formula 5 to the basic predictor and applying formula 6 to the remaining predictors corresponding to the neighboring points of the point to be encoded (excluding the predictor set as the basic predictor). Then, step 71002 sets the prediction mode corresponding to the predictor with the minimum score among the calculated scores as the prediction mode of the point. That is, the predictor corresponding to prediction mode 0 is not used to set the prediction mode of the point to be encoded. In other words, the prediction mode set to the point can be one of prediction mode 1 to prediction mode 3.

[0625] According to another embodiment, when the maximum difference between the attribute values ​​of the nearest neighboring points registered in the predictor of the point to be encoded is equal to or greater than a predefined threshold, step 71002 calculates a score (double score) by applying Formula 7 to the predictor corresponding to the neighboring points of the point to be encoded, and sets the prediction mode corresponding to the predictor with the minimum score among the calculated scores as the prediction mode of the point. That is, the predictor corresponding to prediction mode 0 is not used to set the prediction mode of the point to be encoded. In other words, the prediction mode set to the point can be one of prediction mode 1 to prediction mode 3.

[0626] According to an embodiment, the prediction mode of the points selected by applying the RDO process may be signaled in the attribute slice data.

[0627] According to an embodiment, step 71002 may apply zero run length encoding to the residual attribute value of the point.

[0628] In steps 71001 and 71002 according to an embodiment, encoding may be performed based on a slice or a tile including one or more slices.

[0629] Step 71003 can be performed by Figure 1 Transmitter 10003, Figure 2 Sending process 20002, Fig.12 The sending processor 12012 or Fig.15 The sending processor 51008 executes.

[0630] Fig.36 is a flowchart of a method of receiving point cloud data according to an embodiment.

[0631] According to an embodiment, the point cloud data receiving method may include: step 81001 of receiving encoded geometry, encoded attributes and signaling information, step 81002 of decoding the geometry based on the signaling information, step 81003 of decoding the attributes based on the signaling information and the decoded / reconstructed geometry, and step 81004 of rendering the restored point cloud data based on the decoded geometry and the decoded attributes.

[0632] According to an implementation method, step 81001 may be performed by Figure 1 Receiver 10005, Figure 2 The sending process 20002 or the decoding process 20003, Fig.13 The receiver 130000 or the receiving processor 13001 or Fig. 20 The receiving processor 61001 executes.

[0633] In steps 81002 and 81003 according to an embodiment, decoding may be performed based on a slice or a tile including one or more slices.

[0634] According to an implementation, step 81002 may be performed Figure 1 Point cloud video decoder 10006, Figure 2 Decoding process 20003, Fig.11 Point cloud video decoder, Fig.13 Point cloud video decoder, Fig. 20 A geometry decoder or Fig.21 Some or all operations of the geometry decoder.

[0635] According to the implementation method, step 81003 may be performed Figure 1 Point cloud video decoder 10006, Figure 2 Decoding process 20003, Fig.11 Point cloud video decoder, Fig.13 Point cloud video decoder, Fig. 20 Attribute decoder or Fig.21 Some or all operations of the attribute decoder.

[0636] According to an embodiment, signaling information such as a sequence parameter set, an attribute parameter set, a tile parameter set, or an attribute slice header may include information about the maximum number of predictors used for attribute prediction (lifting_max_num_direct_predictors), threshold information for enabling adaptive prediction of attributes (lifting_adaptive_prediction_threshold), a base predictor selection method (attribute_base_predictor_selection_type), an attribute similarity check method (attribute_similarity_check_method_type), etc.

[0637] According to an embodiment, the attribute slice data may include predictor index information (predIndex) indicating a prediction mode of a point to be decoded.

[0638] According to an embodiment, when the predictor index information of the point is not signaled in the attribute slice data, step 81003 may predict the attribute value of the to-be-decoded point based on prediction mode 0.

[0639] According to an embodiment, when the predictor index information of the point is signaled in the attribute slice data, step 81003 may predict the attribute value of the point to be decoded based on the prediction mode signaled in the attribute slice data.

[0640] According to an embodiment, step 81003 may restore the attribute value of the point by adding the predicted attribute value of the point to the received residual attribute value of the point. In an embodiment, the attribute value of each point may be restored by performing this process on each point.

[0641] According to an embodiment, when the received residual property value is zero-run length encoded, step 81003 may perform zero-run length decoding on the received residual property value as an inverse process of the zero-run length encoding of the sender before restoring the property value.

[0642] In step 81004 of rendering point cloud data according to an embodiment, the point cloud data may be rendered according to various rendering methods. For example, points in the point cloud content may be rendered to vertices having a certain thickness, a cube of a certain minimum size centered at the vertex position, or a circle centered at the vertex position. All or part of the rendered point cloud content is provided to the user through a display (e.g., a VR / AR display, a general display, etc.).

[0643] According to an embodiment, step 81004 may be performed by Figure 1 Renderer 10007, Figure 2 Rendering Process 20004 or Fig.13 Renderer 13011 executes.

[0644] According to the point cloud data transmission method, point cloud data transmission device, point cloud data receiving method and point cloud data receiving device of the embodiment, when the maximum difference between the attribute values ​​of the neighboring points registered in the predictor of the corresponding point is greater than or equal to the preset threshold value, the prediction mode that does not allow the predicted attribute value to be calculated by weighted average is set as the prediction mode of the point. Therefore, the present disclosure can reduce the bit stream size of the attribute information and enhance the compression efficiency of the attribute information.

[0645] Each of the above parts, modules or units can be software, processors or hardware parts that execute the continuous process stored in the memory (or storage unit). Each step described in the above embodiments can be performed by a processor, software or hardware part. Each module / block / unit described in the above embodiments can be operated as a processor, software or hardware. In addition, the method proposed in the embodiment can be executed as a code. The code can be written to a processor-readable storage medium, therefore, it can be read by a processor provided by the device.

[0646] In this specification, when a part "includes" or "comprises" an element, it means that the part also includes or comprises another element unless otherwise mentioned. In addition, the term "...module (or unit)" disclosed in the specification means a unit for processing at least one function or operation, and can be implemented by hardware, software, or a combination of hardware and software.

[0647] Although the embodiments are described with reference to each of the accompanying drawings for the sake of simplicity, new embodiments may be designed by combining the embodiments illustrated in the accompanying drawings. If a person skilled in the art designs a computer-readable recording medium having a program for executing the embodiments mentioned in the above description recorded thereon, the recording medium may fall within the scope of the appended claims and their equivalents.

[0648] The device and method may not be limited to the configuration and method of the above-mentioned embodiments. The above-mentioned embodiments may be configured by selectively combining with each other in whole or in part, so that various modifications can be made.

[0649] Although preferred embodiments have been described with reference to the accompanying drawings, those skilled in the art will appreciate that various modifications and variations may be made in the embodiments without departing from the spirit or scope of the present disclosure described in the appended claims. Such modifications will not be understood independently of the technical ideas or viewpoints of the embodiments.

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

[0651] In this document, the terms " / " and "," should be interpreted as indicating "and / or". For example, the expression "A / B" may mean "A and / or B". In addition, "A, B" may mean "A and / or B". In addition, "A / B / C" may mean "at least one of A, B and / or C". "A, B, C" may mean "at least one of A, B and / or C". In addition, in this document, the term "or" should be interpreted as "and / or". For example, the expression "A or B" may mean 1) only A, 2) only B and / or 3) both A and B. In other words, the term "or" in this document should be interpreted as "in addition or alternatively".

[0652] The various elements of the embodiment can be described using terms such as the first and second. However, the various components according to the embodiment should not be limited by the above terms. These terms are only used to distinguish one element from another. For example, the first user input signal can be referred to as the second user input signal. Similarly, the second user input signal can be referred to as the first user input signal. The use of these terms should be interpreted as not departing from the scope of various embodiments. Both the first user input signal and the second user input signal are user input signals, but do not mean the same user input signal unless the context clearly indicates otherwise. The terms used to describe the embodiment are only used for the purpose of describing a specific embodiment and are not intended to limit the embodiment. As used in the description of the embodiment and the claims, the singular forms "one", "one" and "the" include plural indicators unless the context clearly stipulates otherwise. The expression "and / or" is used to include all possible combinations of terms. Terms such as "including" or "having" are intended to indicate the presence of figures, numbers, steps, elements and / or parts, and should be understood as not excluding the possibility of additional presence of figures, numbers, steps, elements and / or parts.

[0653] As used herein, conditional expressions such as "if" and "when" are not limited to optional situations, but are intended to be interpreted as performing relevant operations or interpreting relevant definitions according to specific conditions when specific conditions are met. Implementation methods may include modifications / variations within the scope of the claims and their equivalents. It will be apparent to those skilled in the art that various modifications and variations may be made to the present invention without departing from the spirit and scope of the present invention. Therefore, the present invention is intended to cover modifications and variations of the present invention as long as they fall within the scope of the appended claims and their equivalents.

[0654] Mode for the Invention

[0655] As described above, the relevant contents have been described in the best mode for carrying out the embodiment.

[0656] Industrial Applicability

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

[0658] It will be apparent to those skilled in the art that various modifications or variations can be made to the embodiments within the scope of the embodiments.

[0659] 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 encoding point cloud data in a transmitting device, the method comprising the following steps: encoding geometric information including positions of points in the point cloud data; as well as encoding attribute information including attribute values ​​of points in the point cloud data based on the geometric information, The step of encoding the geometric information comprises the following steps: quantizing the geometric information; and Perform entropy coding on the quantized geometric information. wherein encoding the attribute information is based on performing a prediction according to a prediction mode of the point to be encoded, wherein, when the maximum difference between the attribute values ​​of the neighboring points of the point to be encoded is equal to or greater than a threshold, predictor candidates based on the neighboring points of the point to be encoded are generated, wherein each predictor candidate corresponds to each prediction mode, wherein each prediction mode is prediction mode 1, prediction mode 2 or prediction mode 3, wherein the predicted attribute value of the point for prediction mode 1, prediction mode 2 or prediction mode 3 is set based on the attribute value of one of the neighboring points, wherein the score of each predictor candidate is obtained based on rate-distortion optimization, and wherein the prediction mode corresponding to the predictor candidate with the smallest score is set for the point, and When the maximum difference between the attribute values ​​of the neighboring points is less than the threshold, prediction mode 0 is set as the prediction mode for the point, and the predicted attribute value of the point for the prediction mode 0 is set based on the weighted average of the attribute values ​​of the neighboring points.

2. The method according to claim 1, in, setting the predicted attribute value of the point for the prediction mode 1 based on the attribute value of a first neighboring point among the neighboring points, wherein the predicted attribute value of the point in the prediction mode 2 is set based on the attribute value of a second neighboring point among the neighboring points, wherein the predicted attribute value of the point for the prediction mode 3 is set based on the attribute value of the third neighboring point among the neighboring points, and The predicted attribute value and the attribute value are related to the reflectivity of the attribute of the point.

3. A method for decoding point cloud data in a receiving device, the method comprising the following steps: Decoding geometric information, wherein the decoded geometric information includes positions of points for the point cloud data; and Decoding attribute information based on the geometric information, wherein the decoded attribute information includes attribute values ​​for the points of the point cloud data, The step of decoding the geometric information comprises the following steps: performing entropy decoding on the geometric information; and Perform inverse quantization on the entropy decoded geometry information, wherein decoding the attribute information is based on performing a prediction according to a prediction mode of the point to be decoded, wherein, when the maximum difference between the attribute values ​​of the neighboring points of the point is equal to or greater than a threshold value, according to a prediction mode that is one of prediction mode 1, prediction mode 2, or prediction mode 3, a predicted attribute value of the point is set based on the attribute value of one of the neighboring points, and When the maximum difference between the attribute values ​​of the neighboring points is less than the threshold, the prediction mode of the point is prediction mode 0, and the predicted attribute value of the point for prediction mode 0 is set based on the weighted average of the attribute values ​​of the neighboring points.

4. The method according to claim 3, in, setting the predicted attribute value of the point for the prediction mode 1 based on the attribute value of a first neighboring point among the neighboring points, wherein the predicted attribute value of the point in the prediction mode 2 is set based on the attribute value of a second neighboring point among the neighboring points, wherein the predicted attribute value of the point for the prediction mode 3 is set based on the attribute value of the third neighboring point among the neighboring points, and The predicted attribute value and the attribute value are related to the reflectivity of the attribute of the point.

5. A method for sending point cloud data in a sending device, the method comprising the following steps: Acquire the point cloud data; encoding geometric information including positions of points in the point cloud data; encoding attribute information including attribute values ​​of points in the point cloud data based on the geometric information; as well as Sending a bitstream including the encoded geometry information and the encoded attribute information, The step of encoding the geometric information comprises the following steps: quantizing the geometric information; and Perform entropy coding on the quantized geometric information. wherein encoding the attribute information is based on performing a prediction according to a prediction mode of the point to be encoded, wherein, when the maximum difference between the attribute values ​​of the neighboring points of the point to be encoded is equal to or greater than a threshold, predictor candidates based on the neighboring points of the point to be encoded are generated, wherein each predictor candidate corresponds to each prediction mode, wherein each prediction mode is prediction mode 1, prediction mode 2 or prediction mode 3, wherein the predicted attribute value of the point for prediction mode 1, prediction mode 2 or prediction mode 3 is set based on the attribute value of one of the neighboring points, wherein the score of each predictor candidate is obtained based on rate-distortion optimization, and wherein the prediction mode corresponding to the predictor candidate with the smallest score is set for the point, and When the maximum difference between the attribute values ​​of the neighboring points is less than the threshold, prediction mode 0 is set as the prediction mode for the point, and the predicted attribute value of the point for the prediction mode 0 is set based on the weighted average of the attribute values ​​of the neighboring points.

6. The method according to claim 5, in, setting the predicted attribute value of the point for the prediction mode 1 based on the attribute value of a first neighboring point among the neighboring points, wherein the predicted attribute value of the point in the prediction mode 2 is set based on the attribute value of a second neighboring point among the neighboring points, wherein the predicted attribute value of the point for the prediction mode 3 is set based on the attribute value of the third neighboring point among the neighboring points, and The predicted attribute value and the attribute value are related to the reflectivity of the attribute of the point.