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

Through point cloud data transmission method and compression coding technology, the delay and decoding complexity problems in point cloud data processing are solved, and efficient point cloud data processing and high-quality virtual reality and autonomous driving services are realized.

JP2025015613APending Publication Date: 2025-01-30LG ELECTRONICS INC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024198052
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-03-19
Filing Date
2024-11-13
Publication Date
2025-01-30

AI Technical Summary

Technical Problem

The existing technology is difficult to efficiently process large amounts of point cloud data, resulting in delay and decoding complexity issues, affecting the quality of services such as virtual reality and autonomous driving.

Method used

The point cloud data transmission method is adopted, including the steps of signing and sending bit streams, and the steps of receiving and decrypting bit streams, combined with point cloud compression encoding technologies, such as G-PCC and V-PCC, to optimize the data processing flow.

Benefits of technology

It realizes efficient processing of point cloud data, provides high-quality virtual reality and autonomous driving services, reducing latency and decoding complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025015613000001_ABST
    Figure 2025015613000001_ABST
Patent Text Reader

Abstract

To provide a point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method.SOLUTION: A point cloud data transmission method according to embodiments comprises encoding point cloud data and transmitting a bit stream including the point cloud data. A point cloud data reception method according to embodiments comprises receiving a bit stream including point cloud data and decoding the point cloud data.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The embodiments relate to a method and apparatus for processing point cloud content. [Background technology]

[0002] Point cloud content is content represented by a point cloud, which is a collection of points belonging to a coordinate system that represents a three-dimensional space. Point cloud content can represent three-dimensional media and is used to provide various services such as VR (Virtual Reality), AR (Augmented Reality), MR (Mixed Reality) and autonomous driving services. However, to represent point cloud content, tens of thousands to hundreds of thousands of point data are required. Therefore, a method for efficiently processing a huge amount of point data is required. Summary of the Invention [Problem to be solved by the invention]

[0003] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The embodiments provide an apparatus and method for efficiently processing point cloud data.The embodiments provide a method and apparatus for processing point cloud data to address latency and encoding / decoding complexity.

[0004] However, the scope of the invention is not limited to the above-mentioned technical problems, and may be extended to other technical problems that a person skilled in the art can derive based on all the contents described herein. [Means for solving the problem]

[0005] A method for transmitting point cloud data according to an embodiment includes the steps of encoding the point cloud data and transmitting a bitstream including the point cloud data. A method for receiving point cloud data according to an embodiment includes the steps of receiving a bitstream including the point cloud data and decoding the point cloud data. Effect of the Invention

[0006] The apparatus and method according to the embodiment can process point cloud data with high efficiency.

[0007] The apparatus and method according to the embodiment can provide a high-quality point cloud service.

[0008] The apparatus and method according to the embodiment can provide point cloud content for providing general-purpose services such as VR services and autonomous driving services. [Brief description of the drawings]

[0009] The accompanying drawings are provided to aid in the understanding of the embodiments and, together with the associated description of the embodiments, illustrate the embodiments. For a better understanding of the various embodiments described below, reference should be made to the following description of the embodiments in conjunction with the following drawings, in which like reference numerals correspond to corresponding parts, and in which:

[0010]

Figure 1

[0011]

Figure 2

[0012]

Figure 3

[0013]

Figure 4

[0014]

Figure 5

[0015]

Figure 6

[0016]

Figure 7

[0017]

Figure 8

[0018]

Figure 9

[0019]

Figure 10

[0020]

Figure 11

[0021]

Figure 12

[0022]

Figure 13

[0023]

Figure 14

[0024]

Figure 15

[0025]

Figure 16

[0026]

Figure 17

[0027]

Figures 18 - 21

[0028]

Figure 22

[0029]

Figure 23

[0030]

Figure 24

[0031]

Figure 25

[0032]

Figure 26

[0033]

Figure 27

[0034]

Figure 28

[0035]

Figure 29

[0036] Preferred embodiments will be described in detail with reference to the accompanying drawings. The following detailed description with reference to the accompanying drawings is intended to illustrate preferred embodiments rather than to illustrate only embodiments that may be implemented by the embodiments. The following detailed description includes details to provide a thorough understanding of the embodiments. However, it will be apparent to those skilled in the art that the embodiments may be practiced without such details.

[0037] Most of the terms used in the examples are common and widely used in the relevant field, but some are arbitrarily selected by the applicant, and their meanings will be explained in detail below as necessary. Therefore, the examples should be understood based on the intended meaning of the terms, rather than the simple names and meanings of the terms.

[0038] FIG. 1 is a diagram illustrating an example of a point cloud content providing system according to an embodiment.

[0039] The point cloud content providing system shown in Fig. 1 includes a transmission device 10000 and a reception device 10004. The transmission device 10000 and the reception device 10004 are capable of wired or wireless communication to transmit and receive point cloud data.

[0040] The transmitting device 10000 according to the embodiment secures, processes, and transmits a point cloud video (or point cloud content). In the embodiment, the transmitting device 10000 includes a fixed station, a base transceiver system (BTS), a network, an AI (Artificial Intelligence) device and / or system, a robot, an AR / VR / XR device and / or server, etc. In the embodiment, the transmitting device 10000 includes a device that communicates with a base station and / or other wireless devices using a wireless connection technology (e.g., 5G NR (New RAT), LTE (Long Term Evolution)), a robot, a vehicle, an AR / VR / XR device, a mobile device, a home appliance, an IoT (Internet of Things) device, an AI device / server, etc.

[0041] The transmitting device 10000 according to the embodiment includes a Point Cloud Video Acquisition unit 10001, a Point Cloud Video Encoder 10002, and / or a Transmitter (or a communication module) 10003.

[0042] The point cloud video acquisition unit 10001 according to the embodiment acquires a point cloud video through a process such as capture, synthesis, or generation. The point cloud video is a point cloud content represented by a point cloud, which is a collection of points located in a three-dimensional space, and is also called point cloud video data. The point cloud video according to the embodiment includes one or more frames. One frame represents a still image / picture. Therefore, the point cloud video includes a point cloud image / frame / picture, and is called any of a point cloud image, a frame, and a picture.

[0043] The point cloud video encoder 10002 according to the embodiment encodes the secured point cloud video data. The point cloud video encoder 10002 encodes the point cloud video data based on point cloud compression coding. The point cloud compression coding according to the embodiment includes Geometry-based Point Cloud Compression (G-PCC) coding and / or Video based Point Cloud Compression (V-PCC) coding or next-generation coding. Note that the point cloud compression coding according to the embodiment is not limited to the above-mentioned embodiment. The point cloud video encoder 10002 can output a bitstream including encoded point cloud video data. The bitstream includes not only encoded point cloud video data but also signaling information related to the encoding of the point cloud video data.

[0044] The transmitter 10003 according to the embodiment transmits a bitstream including encoded point cloud video data. The bitstream according to the embodiment is encapsulated into a file or a segment (e.g., a streaming segment) and transmitted via various networks such as a broadcast network and / or a broadband network. Although not shown, the transmitter 10000 includes an encapsulation unit (or an encapsulation module) that performs an encapsulation operation. In the embodiment, the encapsulation unit is included in the transmitter 10003. In the embodiment, the file or segment is transmitted to the receiving device 10004 via a network or stored in a digital storage medium (e.g., USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.). The transmitter 10003 according to the embodiment can perform wired or wireless communication with the receiving device 10004 (or a receiver 10005) via a network such as 4G, 5G, or 6G. The transmitter 10003 can also perform a required data processing operation via a network system (e.g., a communication network system such as 4G, 5G, or 6G). The transmitting device 10000 can also transmit encapsulated data by an on-demand method.

[0045] The receiving device 10004 according to the embodiment includes a receiver 10005, a point cloud video decoder 10006, and / or a renderer 10007. In the embodiment, the receiving device 10004 includes a device, a robot, a vehicle, an AR / VR / XR device, a mobile device, a home appliance, an IoT (Internet of Things) device, an AI device / server, etc., that communicates with a base station and / or other wireless devices using a wireless connection technology (e.g., 5G NR (New RAT), LTE (Long Term Evolution)).

[0046] The receiver 10005 according to the embodiment receives a bitstream including point cloud video data or a file / segment in which the bitstream is encapsulated from a network or storage medium. The receiver 10005 performs a data processing operation required by a network system (e.g., a communication network system such as 4G, 5G, 6G, etc.). The receiver 10005 according to the embodiment decapsulates the received file / segment and outputs a bitstream. In the embodiment, the receiver 10005 also includes a decapsulation unit (or a decapsulation module) for performing the decapsulation operation. The decapsulation unit is also embodied as an element (or component) separate from the receiver 10005.

[0047] The point cloud video decoder 10006 decodes a bitstream including point cloud video data. The point cloud video decoder 10006 can decode the point cloud video data in the manner in which it was encoded (e.g., the reverse process of the operation of the point cloud video encoder 10002). Thus, the point cloud video decoder 10006 can decode the point cloud video data by performing point cloud reconstruction coding, which is the reverse process of point cloud compression. The point cloud reconstruction coding includes G-PCC coding.

[0048] The renderer 10007 renders the decoded point cloud video data. The renderer 10007 renders not only the point cloud video data but also audio data to output point cloud content. In an embodiment, the renderer 10007 includes a display for displaying the point cloud content. In an embodiment, the display is not included in the renderer 10007 and is embodied by a separate device or component.

[0049] In the drawing, the dotted arrow indicates a transmission path of feedback information obtained by the receiving device 10004. The feedback information is information for reflecting interaction with a user consuming point cloud content, and includes user information (e.g., head orientation information, viewport information, etc.). In particular, when the point cloud content is for a service requiring interaction with a user (e.g., an autonomous driving service, etc.), the feedback information may be transmitted to a content transmitting side (e.g., the transmitting device 10000) and / or a service provider. In an embodiment, the feedback information may be used not only by the transmitting device 10000 but also by the receiving device 10004, or may not be provided.

[0050] According to an embodiment, the head orientation information is information regarding the position, direction, angle, movement, etc. of the user's head. According to an embodiment, the receiving device 10004 calculates viewport information based on the head orientation information. The viewport information is information regarding the area of ​​the point cloud video that the user is looking at. The viewpoint is the point at which the user is looking at the point cloud video, and means the center of the viewport area. That is, the viewport is an area centered on the viewpoint, and the size, shape, etc. of the area are determined by the FOV (Field Of View). Therefore, the receiving device 10004 can extract viewport information based on the vertical or horizontal FOV supported by the device in addition to the head orientation information. In addition, the receiving device 10004 performs gaze analysis, etc. to confirm the user's point cloud consumption manner, the point cloud video area that the user is gazing at, the gaze time, etc. In an embodiment, the receiving device 10004 can transmit feedback information including the result of the gaze analysis to the transmitting device 10000. According to an embodiment, the feedback information is obtained during the rendering and / or display process. According to the embodiment, the feedback information is obtained by one or more sensors included in the receiving device 10004. Also, in the embodiment, the feedback information is obtained by the renderer 10007 or another external element (or device, component, etc.). The dotted lines shown in FIG. 1 indicate the process of transmitting the feedback information obtained by the renderer 10007. The point cloud content providing system processes (encodes / decodes) point cloud data based on the feedback information. Thus, the point cloud video data decoder 10006 can perform a decoding operation based on the feedback information. Also, the receiving device 10004 can transmit the feedback information to the transmitting device 10000. The transmitting device 10000 (or the point cloud video data encoder 10002) can perform an encoding operation based on the feedback information.Therefore, the point cloud content providing system does not process (encode / decode) all point cloud data, but efficiently processes necessary data (e.g., point cloud data corresponding to the user's head position) based on feedback information, and can provide point cloud content to the user.

[0051] In an embodiment, the sending device 10000 may be referred to as an encoder, a sending device, a transmitter, etc., and the receiving device 10004 may be referred to as a decoder, a receiving device, a receiver, etc.

[0052] The point cloud data processed (processed in a series of steps of acquisition / encoding / transmission / decoding / rendering) in the point cloud content providing system of FIG. 1 according to the embodiment is also called point cloud content data or point cloud video data. In the embodiment, the point cloud content data can be used as a concept including metadata or signaling information related to the point cloud data.

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

[0054] FIG. 2 is a block diagram illustrating operations for providing point cloud content according to an embodiment.

[0055] Figure 2 is a block diagram showing the operation of the point cloud content providing system described in Figure 1. As described above, the point cloud content providing system processes point cloud data based on point cloud compression coding (eg, G-PCC).

[0056] In a point cloud content providing system (e.g., a point cloud transmitting device 10000 or a point cloud video acquiring unit 10001) according to an embodiment, a point cloud video is acquired (20000). The point cloud video is represented by a point cloud belonging to a coordinate system representing a three-dimensional space. The point cloud video according to an embodiment includes a Ply (Polygon File format or the Stanford Triangle format) file. When the point cloud video has one or more frames, the acquired point cloud video includes one or more Ply files. A Ply file includes point cloud data such as the geometry and / or attributes of a point. The geometry includes the position of the point. The position of each point is represented by parameters (e.g., values ​​of each of the X-axis, Y-axis, and Z-axis) indicating a three-dimensional coordinate system (e.g., a coordinate system consisting of XYZ axes). The attributes include the attributes of the point (e.g., texture information of each point, hue (YCbCr or RGB), reflectance (r), transparency, etc.). One point has one or more attributes (or attributes). For example, one point may have one attribute of hue, or two attributes of hue and reflectance. In the embodiment, geometry may be referred to as position, geometry information, geometry data, etc., and attributes may be referred to as attributes, attribute information, attribute data, etc. In addition, the point cloud content providing system (e.g., the point cloud transmitting device 10000 or the point cloud video acquiring unit 10001) may obtain point cloud data from information related to the point cloud video acquiring process (e.g., depth information, hue information, etc.).

[0057] A point cloud content providing system (e.g., a transmitting device 10000 or a point cloud video encoder 10002) according to an embodiment encodes point cloud data (20001). The point cloud content providing system encodes point cloud data based on point cloud compression coding. As described above, point cloud data includes geometry and attributes of points. Thus, the point cloud content providing system can perform geometry encoding to encode the geometry and output a geometry bitstream. The point cloud content providing system can perform attribute encoding to encode the attributes and output an attribute bitstream. In an embodiment, the point cloud content providing system can perform attribute encoding based on the geometry encoding. The geometry bitstream and the attribute bitstream according to the embodiment are multiplexed and output as one bitstream. The bitstream according to the embodiment further includes signaling information related to the geometry encoding and the attribute encoding.

[0058] A point cloud content providing system (e.g., transmitting device 10000 or transmitter 10003) according to an embodiment transmits encoded point cloud data (20002). As described in FIG. 1, the encoded point cloud data is represented by a geometry bitstream and a feature bitstream. The encoded point cloud data is transmitted 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 feature encoding). The point cloud content providing system also encapsulates the bitstream for transmitting the encoded point cloud data and transmits it in the form of a file or segment.

[0059] A point cloud content providing system (e.g., receiving device 10004 or receiver 10005) according to an embodiment receives a bitstream including encoded point cloud data, and the point cloud content providing system (e.g., receiving device 10004 or receiver 10005) can demultiplex the bitstream.

[0060] The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) decodes the encoded point cloud data (e.g., geometry bitstream, attribute bitstream) transmitted in a bitstream. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) decodes the point cloud video data based on signaling information related to the encoding of the point cloud video data included in the bitstream. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) decodes the geometry bitstream to restore the position (geometry) of the point. The point cloud content providing system decodes the attribute bitstream based on the restored geometry to restore the attribute of the point. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) restores the point cloud video based on the position according to the restored geometry and the decoded attribute.

[0061] A point cloud content providing system (e.g., receiving device 10004 or renderer 10007) according to an embodiment renders the decoded point cloud data (20004). The point cloud content providing system (e.g., receiving device 10004 or renderer 10007) renders the geometry and characteristics decoded during the decoding process using various rendering methods. Points of the point cloud content are rendered as a fixed point with a certain thickness, a cube with a predetermined minimum size centered on the position of the fixed point, or a circle centered on the position of the fixed point. All or a part of the region of the rendered point cloud content is provided to a user via a display (e.g., a VR / AR display, a general display, etc.).

[0062] The point cloud content providing system according to the embodiment (e.g., receiving device 10004) can obtain feedback information (20005). The point cloud content providing system encodes and / or decodes point cloud data based on the feedback information. The feedback information and the operation of the point cloud content providing system according to the embodiment are the same as the feedback information and the operation described in FIG. 1, so a detailed description will be omitted.

[0063] FIG. 3 illustrates an example of a point cloud video capture process according to an embodiment.

[0064] FIG. 3 illustrates an example of a point cloud video capture process of the point cloud content providing system described in FIG. 1 and FIG.

[0065] Point cloud content includes point cloud videos (images and / or videos) showing objects and / or environments located in various 3D spaces (e.g., a 3D space showing a real environment, a 3D space showing a virtual environment, etc.). Thus, the point cloud content providing system according to the embodiment captures point cloud videos using one or more cameras (e.g., an infrared camera capable of obtaining depth information, an RGB camera capable of extracting color information corresponding to the depth information, etc.), projectors (e.g., an infrared pattern projector for obtaining depth information, etc.), LiDAR, etc. to generate point cloud content. The point cloud content providing system according to the embodiment extracts a geometric form composed of points in a 3D space from the depth information, and extracts characteristics of each point from the color information to obtain point cloud data. The images and / or videos according to the embodiment are captured based on either an inward-facing approach or an outward-facing approach.

[0066] The inward-looking method is shown on the left side of Figure 3. The inward-looking method is a method in which one or more cameras (or camera sensors) positioned around a central object capture the central object. The inward-looking method is used to generate point cloud content that provides the user with a 360-degree image of the core object (e.g., VR / AR content that provides the user with a 360-degree image of an object (e.g., a core object such as a character, player, item, actor, etc.)).

[0067] The outward-looking approach is shown on the right side of Figure 3. In the outward-looking approach, one or more cameras (or camera sensors) positioned around a central object capture the environment of the central object that is not the central object. The outward-looking approach is used to generate point cloud content to provide the surrounding environment from a user's perspective (e.g., content showing the external environment provided to a user of an autonomous vehicle).

[0068] As shown in the figure, the point cloud content is generated based on the capture operation of one or more cameras. In this case, since the coordinate systems of the respective cameras are different, the point cloud content providing system performs calibration of one or more cameras to set a global coordinate system before the capture operation. The point cloud content providing system also generates point cloud content by combining the image and / or video captured by the above-mentioned capture method with an arbitrary image and / or video. When generating point cloud content representing a virtual space, the point cloud content providing system does not perform the capture operation described in FIG. 3. The point cloud content providing system according to the embodiment can also perform post-processing on the captured image and / or video. That is, the point cloud content providing system can remove undesired areas (e.g., background) or can recognize a space where the captured images and / or videos are connected and fill in a spatial hole if one exists.

[0069] The point cloud content providing system can also generate one point cloud content by performing coordinate system transformation on the points of the point cloud video acquired from each camera. The point cloud content providing system performs coordinate system transformation of the points based on the position coordinates of each camera. In this way, the point cloud content providing system can generate content showing a wide range or generate point cloud content with a high point density.

[0070] FIG. 4 is a diagram illustrating an example of a point cloud encoder according to an embodiment.

[0071] FIG. 4 shows an example of the point cloud video encoder 10002 of FIG. 1. The point cloud encoder performs encoding by reconstructing point cloud data (e.g., point positions and / or characteristics) to adjust the quality of the point cloud content (e.g., lossless, lossy, near-lossless) according to the network condition or application. If the overall size of the point cloud content is large (e.g., point cloud content of 60 Gbps for 30 fps), the point cloud content providing system cannot stream the corresponding 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 it according to the network environment, etc.

[0072] As shown in Figures 1 and 2, a point cloud encoder can perform geometry encoding and feature encoding, where the geometry encoding is performed before the feature encoding.

[0073] The point cloud encoder according to the embodiment includes a coordinate system transformation unit (Transformation Coordinates) 40000, a quantization unit (Quantize and Remove Points (Voxelize)) 40001, an octree analysis unit (Analyze Octree) 40002, a surface approximation analysis unit (Analyze Surface Approximation) 40003, an arithmetic encoder (Arithmetic Encode) 40004, a geometry reconstruction unit (Reconstruct Geometry) 40005, a color transformation unit (Transform Colors) 40006, a characteristic transformation unit (Transfer Attributes) 40007, a RAHT transformation unit 40008, an LOD generation unit (Generated LOD) 40009, a lift transformation unit (Lifting) 40010, a coefficient quantization unit (Quantize Coefficients) 40011 and / or an arithmetic encoder (Arithmetic Encode) 40012.

[0074] The coordinate system conversion unit 40000, the quantization unit 40001, the octree analysis unit 40002, the surface approximation analysis unit 40003, the arithmetic encoder 40004, and the geometry reconstruction unit 40005 can perform geometry encoding. The geometry encoding according to the embodiment includes octree geometry coding, direct coding, trisoup geometry encoding, and entropy coding. The direct coding and trisoup geometry encoding are applied selectively or in combination. Note that the geometry encoding is not limited to the above examples.

[0075] As shown in the figure, the coordinate system conversion unit 40000 according to the embodiment receives a position and converts it into a coordinate system. For example, the position is converted into position information in a three-dimensional space (e.g., a three-dimensional space expressed in an XYZ coordinate system). The position information in the three-dimensional space according to the embodiment is also referred to as geometry information.

[0076] The quantizer 40001 according to the embodiment quantizes the geometry. For example, the quantizer 40001 quantizes the points based on the minimum position value of all points (for example, the minimum value on each axis for the X-axis, Y-axis, and Z-axis). The quantizer 40001 performs a quantization operation by multiplying the difference between the minimum position value and the position value of each point by a predetermined quantization scale value, and then rounding down or up to find the closest integer value. Therefore, one or more points can have the same quantized position (or position value). The quantizer 40001 according to the embodiment performs voxelization based on the quantized position to reconstruct the quantized points. The smallest unit including 2D image / video information is a pixel, and the points of the point cloud content (or 3D point cloud video) according to the embodiment are included in one or more voxels. A voxel is a combination of the words volume and pixel, and refers to a three-dimensional cubic space that is generated when a three-dimensional space is divided into units (unit=1.0) based on an axis (e.g., X-axis, Y-axis, Z-axis) that represents the three-dimensional space. The quantization unit 40001 can match a group of points in the three-dimensional space with a voxel. In an embodiment, one voxel can include only one point. In an embodiment, one voxel includes one or more points. In addition, to represent one voxel with one point, the position of the center point of the corresponding voxel can be set based on the position of one or more points included in the voxel. In this case, the characteristics of all positions included in one voxel are combined and assigned to the corresponding voxel.

[0077] The octree analysis unit 40002 according to the embodiment performs octree geometry coding (or octree coding) to represent the voxels in an octree structure, which represents points matched to the voxels based on an octet structure.

[0078] The surface approximation analysis unit 40003 according to the embodiment analyzes and approximates the octree. The octree analysis and approximation according to the embodiment is a process of analyzing a region containing a large number of points to voxelize it in order to efficiently provide an octree and voxelization.

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

[0080] The color transform unit 40006, the feature transform unit 40007, the RAHT transform unit 40008, the LOD generating unit 40009, the lift transform unit 40010, the coefficient quantization unit 40011 and / or the arithmetic encoder 40012 perform feature coding. As described above, one point has one or more features. The feature coding according to the embodiment is equally applied to the features of one point. However, when one feature (e.g., hue) includes one or more elements, an independent feature coding is applied to each element. The feature coding according to the embodiment includes color transformation coding, feature transformation coding, RAHT (Region Adaptive Hierarchial Transform) coding, Interpolarization-based hierarchical nearest-neighbour prediction-Prediction Transform coding, and Lift transform (interpolation-based hierarchical nearest-neighbour prediction with an update / lifting step (Lifting Transform)) coding. Depending on the point cloud content, the above-mentioned RAHT coding, predictive transform coding, and lift transform coding may be selectively used, or a combination of one or more coding may be used. Furthermore, the feature coding according to the embodiment is not limited to the above examples.

[0081] The color converter 40006 according to the embodiment performs color conversion coding to convert the color values ​​(or textures) included in the characteristics. For example, the color converter 40006 converts the format of the hue information (e.g., converts from RGB to YCbCr). The operation of the color converter 40006 according to the embodiment is optionally applied depending on the color values ​​included in the characteristics.

[0082] The geometry reconstruction unit 40005 according to the embodiment reconstructs (restores) the octree and / or the approximated octree. The geometry reconstruction unit 40005 reconstructs the octree / voxel based on the result of analyzing the distribution of points. The reconstructed octree / voxel is also called the reconstructed geometry (or restored geometry).

[0083] The feature converter 40007 according to the embodiment performs feature conversion to convert features based on a position where geometry encoding has not been performed and / or a reconstructed geometry. As described above, features depend on geometry, so the feature converter 40007 can convert features based on reconstructed geometry information. For example, the feature converter 40007 can convert features of a point included in a voxel based on a position value of the point. As described above, when the position of the center point of a voxel is set based on the positions of one or more points included in the voxel, the feature converter 40007 converts features of one or more points. When trisoup geometry encoding is performed, the feature converter 40007 can convert features based on the trisoup geometry encoding.

[0084] The attribute conversion unit 40007 performs attribute conversion by calculating the average value of the attributes or attribute values ​​(e.g., the hue or reflectance of each point) of adjacent points within a certain position / radius from the position (or position value) of the center point of each voxel. When calculating the average value, the attribute conversion unit 40007 applies a weighting value according to the distance from the center point to each point. Thus, each voxel has a position and a calculated attribute (or attribute value).

[0085] The feature conversion unit 40007 searches for adjacent points within a specific position / radius from the position of the center point of each voxel based on the KD tree or Moulton code. The KD tree supports a data structure that manages points based on their position so that a Nearest Neighbor Search (NNS) can be performed quickly using a binary search tree. The Moulton code is generated by mixing bits and expressing the coordinate values ​​(e.g., (x, y, z)) indicating the three-dimensional position of all points. For example, if the coordinate value indicating the position of a point is (5, 9, 1), the bit value of the coordinate value is (0101, 1001, 0001). If the bit values ​​are mixed according to the bit index in the order of z, y, and x, the result is 010001000111. This value is expressed as 1095 in decimal. In other words, the Moulton code value of a point with coordinate values ​​(5, 9, 1) is 1095. The feature converter 40007 aligns points based on the Moulton code value and performs nearest neighbor search (NNS) through a depth-first traversal process. If nearest neighbor search (NNS) is required in other conversion processes for feature coding after the feature conversion operation, a KD tree or Moulton code is used.

[0086] As shown, the transformed attributes are input to a RAHT transformer 40008 and / or an LOD generator 40009 .

[0087] The RAHT converter 40008 according to the embodiment performs RAHT coding to predict feature information based on the reconstructed geometry information. For example, the RAHT converter 40008 can predict feature information of a node at a higher level of the octree based on feature information associated with a node at a lower level of the octree.

[0088] The LOD generating unit 40009 according to the embodiment generates LOD (Level of Detail) to perform predictive conversion coding. The LOD according to the embodiment indicates the degree of detail of the point cloud content, and it is indicated that the smaller the LOD value, the lower the detail of the point cloud content, and the larger the LOD value, the higher the detail of the point cloud content. Points can be classified according to the LOD.

[0089] The lift transform unit 40010 according to the embodiment performs lift transform coding, which transforms the characteristics of the point cloud based on weights. As described above, the lift transform coding is selectively applied.

[0090] The coefficient quantization unit 40011 according to the embodiment quantizes the feature-coded feature based on the coefficients.

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

[0092] The elements of the point cloud encoder of FIG. 4 may be implemented in hardware, software, firmware, or a combination thereof, including one or more processors or integrated circuits (not shown) configured to communicate with one or more memories included in the point cloud providing apparatus. The one or more processors may perform any one of the operations and / or functions of the elements of the point cloud encoder of FIG. 4 described above. The one or more processors may also operate or execute a software program and / or set of instructions to perform the operations and / or functions of the elements of the point cloud encoder of FIG. 4. According to an embodiment, the one or more memories may include high speed random access memory or may include non-volatile memory (e.g., one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices, etc.).

[0093] FIG. 5 is a diagram showing an example of a voxel according to the embodiment.

[0094] FIG. 5 shows a voxel located in a three-dimensional space expressed by a coordinate system consisting of three axes, the X-axis, the Y-axis, and the Z-axis. As shown in FIG. 4, a point cloud encoder (e.g., the quantization unit 40001, etc.) performs voxelization. A voxel means a three-dimensional cubic space that is generated when the three-dimensional space is divided into units (unit=1.0) based on the axes (e.g., the X-axis, the Y-axis, and the Z-axis) that represent the three-dimensional space. FIG. 5 shows two extreme points (0,0,0) and (2 d ,2 d ,2 d ) is generated by an octree structure that recursively subdivides a bounding box (cubical axis-aligned bounding box) defined by . A voxel contains at least one point. The spatial coordinates of a voxel can be estimated from its positional relationship with a voxel group. As mentioned above, a voxel has characteristics (such as hue or reflectance) just like a pixel in a 2D image / video. A detailed description of voxels is omitted here as it has been described in FIG. 4.

[0095] FIG. 6 is a diagram illustrating an example of an octree and occupancy code according to an embodiment.

[0096] As shown in Figures 1 to 4, a point cloud content providing system (point cloud video encoder 10002) or a point cloud encoder (e.g., octree analysis unit 40002) performs octree geometry coding (or octree coding) based on an octree structure to efficiently manage the area and / or position of voxels.

[0097] The upper part of FIG. 6 shows an octree structure. The three-dimensional space of the point cloud content according to the embodiment is represented by the axes of a coordinate system (e.g., X-axis, Y-axis, and Z-axis). The octree structure is represented by two extreme points (0,0,0) and (2 d , 2 d , 2 d ) is generated by recursively subdividing the bounding box defined by (x int n ,y int n ,z int n ) indicates the quantized position (or position value) of the point.

[0098]

number

[0099] As shown in the upper center of Figure 6, the entire 3D space is divided into eight spaces through division. Each divided space is represented as a cube with six sides. As shown in the upper right of Figure 6, each of the eight spaces is again divided by the axes of the coordinate system (e.g., X-axis, Y-axis, Z-axis). Therefore, each space is again divided into eight smaller spaces. The divided smaller spaces are also represented as cubes with six sides. This division method is applied until the leaf nodes of the octree become voxels.

[0100] The lower part of FIG. 6 shows an occupancy code of an octree. The occupancy code of an octree is generated to indicate whether each of the eight divided spaces generated by dividing one space contains at least one point. Therefore, one occupancy code is expressed by eight child nodes. Each child node indicates the occupancy of the divided space, and has a 1-bit value. Therefore, the occupancy code is expressed by an 8-bit code. That is, if the space corresponding to a child node contains at least one point, the corresponding node has a value of 1. If the space corresponding to a node does not contain a point (empty), the corresponding node has a value of 0. The occupancy code shown in FIG. 6 is 00100001, which indicates that the spaces corresponding to the third and eighth child nodes of the eight child nodes each contain at least one point. As shown in the figure, the third and eighth child nodes each have eight child nodes, and each child node is expressed by an 8-bit occupancy code. The figure shows that the occupied code of the third child node is 10000111, and the occupied code of the eighth child node is 01001111. A point cloud encoder according to the embodiment (e.g., the arithmetic encoder 40004) can entropy code the occupied code. To improve compression efficiency, the point cloud encoder can also intra / inter code the occupied code. A receiving device according to the embodiment (e.g., the receiving device 10004 or the point cloud video decoder 10006) reconstructs an octree based on the occupied code.

[0101] A point cloud encoder according to an embodiment (e.g., the point cloud encoder or octree analyzer 40002 in FIG. 4) performs voxelization and octree coding to store the positions of points. However, since points in a 3D space are not always uniformly distributed, there may be certain areas where there are not many points. Therefore, it is inefficient to perform voxelization on the entire 3D space. For example, if there are almost no points in a certain area, there is no need to perform voxelization on that area.

[0102] Therefore, the point cloud encoder according to the embodiment does not perform voxelization for the above-mentioned specific region (or nodes other than the leaf nodes of the octree), but performs direct coding, which directly codes the positions of points included in the specific region. The coordinates of the direct coding points according to the embodiment are called a direct coding mode (DCM). The point cloud encoder according to the embodiment can also perform trisoup geometry encoding, which reconstructs the positions of points in a specific region (or node) based on voxels based on a surface model. Trisoup geometry encoding is a geometry encoding that represents an object as a series of triangle meshes. Therefore, the point cloud decoder can generate a point cloud from the mesh surface. The direct coding and trisoup geometry encoding according to the embodiment are selectively performed. The direct coding and trisoup geometry encoding according to the embodiment can also be combined with octree geometry coding (or octree coding).

[0103] To perform direct coding, an option to use direct mode for applying direct coding must be activated, and the node to which direct coding is applied must not be a leaf node, and points below a threshold must exist within a specific node. Also, the total number of points to be subject to direct coding must not exceed a predetermined threshold. If the above conditions are met, the point cloud encoder (or the computation encoder 40004) according to the embodiment can entropy code the positions (or position values) of the points.

[0104] The point cloud encoder (e.g., the surface approximation analysis unit 40003) according to the embodiment can determine a specific level of the octree (if the level is smaller than the depth d of the octree), and from that level, perform trisoup geometry encoding, which uses a surface model to reconstruct the positions of points in the node area based on voxels (trisoup mode). The point cloud encoder according to the embodiment can specify the level to which the trisoup geometry encoding is applied. For example, if the specified level is equal to the depth of the octree, the point cloud encoder does not operate in trisoup mode. That is, the point cloud encoder according to the embodiment can operate in trisoup mode only when the specified level is smaller than the depth value of the octree. The 3D cubic area of ​​the node at a specified level according to the embodiment is called a block. One block includes one or more voxels. A block or a voxel can also correspond to a brick. Within each block, the geometry is represented as a surface. The surface according to the embodiment can intersect each edge of the block at most once.

[0105] Since a block has 12 edges, there are at least 12 intersections within a block. Each intersection is called a vertex. A vertex along an edge is detected if there is at least one occupied voxel adjacent to the edge among all blocks that share the edge. In this embodiment, an occupied voxel refers to a voxel that contains a point. The position of a vertex detected along an edge is the average position along the edge of all voxels adjacent to the edge among all blocks that share the edge.

[0106] When a vertex is detected, the point cloud encoder according to the embodiment can entropy code the edge start point (x, y, z), the edge direction vector (Δx, Δy, Δz), and the vertex position value (relative position value within the edge). When trisoup geometry encoding is applied, the point cloud encoder according to the embodiment (e.g., the geometry reconstruction unit 40005) can generate a restored geometry (reconstructed geometry) by performing triangle reconstruction, up-sampling, and voxelization processes.

[0107] The vertices located on the edges of the blocks determine the surface that passes through the blocks. In the embodiment, the surface is a non-planar polygon. The triangulation process reconstructs the surface represented by triangles based on the start points of the edges, the edge direction vectors, and the vertex positions. The triangulation process is as follows: (1) calculate the centroid value of each vertex, (2) subtract the centroid value from each vertex value, and (3) square the result to obtain a combined value.

[0108]

number

[0109] The minimum of the added values ​​is found, and a projection process is performed along the axis where the minimum value is. For example, if the x element is the minimum, each vertex is projected onto the x-axis with the center of the block as the base, and then projected onto the (y,z) plane. If the value obtained by projecting onto the (y,z) plane is (ai,bi), the θ value is found using atan2(bi,ai) and the vertices are aligned based on the θ value. The following table shows the combination of vertices to generate a triangle depending on the number of vertices. The vertices are aligned in order from 1 to n. The following table shows that for four vertices, two triangles are formed by combining the vertices. The first triangle is formed from the 1st, 2nd, and 3rd vertices of the aligned vertices, and the second triangle is formed from the 3rd, 4th, and 1st vertices of the aligned vertices.

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

[0111] n triangles

[0112] 3 (1,2,3)

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

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

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

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

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

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

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

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

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

[0122] The upsampling process is performed to add intermediate points along the edges of triangles for voxelization. The additional points are generated based on the upsampling factor and the block width. The additional points are called refined vertices. The point cloud encoder according to the embodiment can voxelize the refined vertices. The point cloud encoder can also perform feature encoding based on the voxelized positions (or position values).

[0123] FIG. 7 is a diagram illustrating an example of an adjacent node pattern according to the embodiment.

[0124] To increase the compression efficiency of the point cloud video, the point cloud encoder according to the embodiment performs entropy coding based on context adaptive arithmetic coding.

[0125] As described in FIG. 1 to FIG. 6, a point cloud content providing system or a point cloud encoder (e.g., a point cloud video encoder 10002, a point cloud encoder or an arithmetic encoder 40004 in FIG. 4) can immediately perform entropy coding on the occupancy code. In addition, the point cloud content providing system or the point cloud encoder can perform entropy coding (intra coding) based on the occupancy code of the current node and the occupancy rate of the neighboring node, or can perform entropy coding (inter coding) based on the occupancy code of the previous frame. A frame according to the embodiment means a collection of point cloud videos generated at the same time. The compression efficiency of intra coding / inter coding according to the embodiment varies depending on the number of neighboring nodes to be referenced. Although the complexity increases as the number of bits increases, the compression efficiency can be improved by leaning to one side. For example, if there is a 3-bit context, coding is performed in 8 ways, which is 2 to the power of 3. The part to be coded separately affects the complexity of the implementation. Therefore, it is necessary to match the compression efficiency and the appropriate level of the complexity.

[0126] FIG. 7 illustrates a process of determining an occupancy pattern based on the occupancy of adjacent nodes. The point cloud encoder according to the embodiment obtains a neighbor pattern value by determining the occupancy of adjacent nodes of each node in an occupancy tree. The neighbor pattern is used to infer the occupancy pattern of the corresponding node. The left side of FIG. 7 illustrates a cube corresponding to the node (the cube located in the middle) and six cubes (neighboring nodes) that share at least one side with the corresponding cube. The illustrated nodes are nodes at the same depth. The illustrated numbers indicate the weights (1, 2, 4, 8, 16, 32, etc.) associated with each of the six nodes. Each weight is assigned in order according to the position of the neighboring node.

[0127] The right side of FIG. 7 shows the adjacent node pattern value. The adjacent node pattern value is the sum of values ​​multiplied by the weight values ​​of occupied adjacent nodes (adjacent nodes having points). Therefore, the adjacent node pattern value has a value from 0 to 63. An adjacent node pattern value of 0 means that there is no node (occupied node) that has points among the adjacent nodes of the corresponding node. An adjacent node pattern value of 63 means that all adjacent nodes are occupied nodes. As shown in the figure, adjacent nodes to which weight values ​​1, 2, 4, and 8 are assigned are occupied nodes, so the adjacent node pattern value is 15, which is a value obtained by adding 1, 2, 4, and 8. The point cloud encoder can perform coding according to the adjacent node pattern value (e.g., if the adjacent node pattern value is 63, 64 coding is performed). In an embodiment, the point cloud encoder can reduce the coding complexity by changing the adjacent node pattern value (e.g., based on a table that changes 64 to 10 or 6).

[0128] FIG. 8 is a diagram illustrating an example of a point configuration for each LOD according to the embodiment.

[0129] As described in Figures 1 to 7, before feature coding is performed, the coded geometry is reconstructed (restored). When direct coding is applied, the operation of geometry reconstruction includes changing the placement of the direct coded points (e.g., placing the direct coded points in front of the point cloud data). When trisoup geometry coding is applied, the process of geometry reconstruction includes the processes of triangulation, upsampling, and voxelization. Since features are dependent on geometry, feature coding is performed based on the reconstructed geometry.

[0130] A point cloud encoder (e.g., LOD generator 40009) reorganizes points by LOD. The diagram shows point cloud content corresponding to LOD. The left side of the diagram shows the original point cloud content. The second from the left in the diagram shows the distribution of points with the lowest LOD, and the rightmost side shows the distribution of points with the highest LOD. That is, the points with the lowest LOD have a sparse distribution, and the points with the highest LOD have a fine distribution. That is, as the LOD increases along the direction of the arrow shown at the bottom of the diagram, the spacing (or distance) between points becomes shorter.

[0131] FIG. 9 is a diagram illustrating an example of a point configuration for each LOD according to the embodiment.

[0132] As described in FIG. 1 to FIG. 8, a point cloud content providing system or point cloud encoder (e.g., point cloud video encoder 10002, point cloud encoder or LOD generator 40009 in FIG. 4) generates LOD. The LOD is generated by realigning points with a set of refinement levels according to a set LOD distance value (or a set of Euclidean Distances). The LOD generation process is performed not only in the point cloud encoder but also in the point cloud decoder.

[0133] The upper part of Figure 9 shows an example of points (P0 to P9) of point cloud content distributed in 3D space. The original order in Figure 9 shows the order of points P0 to P9 before LOD generation. The LOD based order in Figure 9 shows the order of points after LOD generation. Points are re-ordered for each LOD. Also, higher LODs include points that belong to lower LODs. As shown in Figure 9, LOD0 includes P0, P5, P4, and P2. LOD1 includes points of LOD0, P1, P6, and P3. LOD2 includes points of LOD0, points of LOD1, and P9, P8, and P7.

[0134] As described in FIG. 4, the point cloud encoder according to the embodiment can selectively or in combination perform predictive transform coding, lift transform coding, and RAHT transform coding.

[0135] The point cloud encoder according to the embodiment generates a predictor for each point and performs predictive conversion coding to set a prediction characteristic (or a prediction characteristic value) for each point. That is, N predictors are generated for N points. The predictor according to the embodiment can calculate a weight (=1 / distance) based on the LOD value of each point, index information for adjacent points within a distance set for each LOD, and a distance value to the adjacent point.

[0136] The predicted feature (or feature value) according to the embodiment is set as an average value of the feature (or feature value, e.g., hue, reflectance, etc.) of the neighboring points set in the predictor of each point multiplied by the weight (or weight value) calculated based on the distance to each neighboring point. The point cloud encoder (e.g., the coefficient quantization unit 40011) according to the embodiment may quantize and inverse quantize residuals (also called residual features, residual feature values, feature predicted residual values, etc.) obtained by subtracting the predicted feature (feature value) from the feature (feature value) of each point. The quantization process is as shown in the following table.

[0137] Table.Attribute prediction residuals quantization pseudo code

[0138] int PCCQuantization(inT value, inT quantStep) {

[0139] if( value >= 0 ) {

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

[0141] } else {

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

[0143] }

[0144] }

[0145] Table.Attribute prediction residuals inverse quantization pseudo Code

[0146] int PCCInverseQuantization(inT value, inT quantStep) {

[0147] if(quantStep == 0) {

[0148] return value;

[0149] } else {

[0150] return value*quantStep;

[0151] }

[0152] }

[0153] The point cloud encoder (e.g., the arithmetic encoder 40012) according to the embodiment performs entropy coding on the quantized and dequantized residual values ​​as described above if there are adjacent points in the predictor of each point. If there are no adjacent points in the predictor of each point, the point cloud encoder (e.g., the arithmetic encoder 40012) according to the embodiment does not perform the above process and performs entropy coding on the characteristics of the corresponding point.

[0154] The point cloud encoder (e.g., lift transform unit 40010) according to the embodiment generates a predictor for each point, sets the calculated LOD in the predictor, registers adjacent points, and sets weights according to the distance to the adjacent points to perform lift transform coding. The lift transform coding according to the embodiment is similar to the above-mentioned point transform coding, but differs in that weights are cumulatively applied to feature values. The process of cumulatively applying weights to feature values ​​according to the embodiment is as follows.

[0155] 1) Create an array QW (QuantizationWeight) to store the weight value of each point. The initial value of all elements of QW is 1.0. The QW value of the predictor index of the adjacent node registered in the predictor is multiplied by the predictor weight value of the current point and added.

[0156] 2) Lift prediction process: To calculate the predicted attribute value, the attribute value of the point is multiplied by the weighting value and subtracted from the existing attribute value.

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

[0158] 4) The calculated weights for all predictors are multiplied by the weights stored in the QW corresponding to the predictor index, and the calculated weights are accumulated and summed in the update weight array as the index of the adjacent node. The update array is accumulated and summed by multiplying the attribute values ​​of the index of the adjacent node by the calculated weights.

[0159] 5) Lift update process: For every predictor, divide the feature value in the update array by the weight value in the update weight array for the predictor index, and then add the divided value back to the existing feature value.

[0160] 6) For all predictors, the feature values ​​updated in the lift update process are further multiplied by the weights updated in the lift prediction process (stored in the QW) to calculate predicted feature values. A point cloud encoder (e.g., coefficient quantizer 40011) according to the embodiment quantizes the predicted feature values. In addition, a point cloud encoder (e.g., arithmetic encoder 40012) entropy codes the quantized feature values.

[0161] The point cloud encoder according to the embodiment (e.g., the RAHT converter 40008) performs RAHT transform coding, which predicts the features of higher level nodes using features associated with lower level nodes of the octree. RAHT transform coding is an example of feature intra-coding using octree backward scan. The point cloud encoder according to the embodiment scans the entire region from the voxel and repeats the merging process up to the root node while combining the voxels into larger blocks at each step. The merging process according to the embodiment is performed only for occupied nodes. The merging process is not performed for empty nodes, but is performed for the nodes immediately above the empty nodes.

[0162] JPEG2025015613000004.jpg25170

[0163]

number

[0164] JPEG2025015613000006.jpg33170

[0165]

number

[0166] FIG. 10 is a diagram illustrating an example of a point cloud decoder according to an embodiment.

[0167] The point cloud decoder shown in FIG. 10 is an example of the point cloud video decoder 10006 shown in FIG. 1, and performs the same or similar operations as the point cloud video decoder 10006 described in FIG. 1. As shown, the point cloud decoder receives a geometry bitstream and an attribute bitstream included in one or more bitstreams. The point cloud decoder includes a geometry decoder and an attribute decoder. The geometry decoder performs geometry decoding on the geometry bitstream and outputs a decoded geometry. The attribute decoder performs attribute decoding based on the decoded geometry and attribute bitstream and outputs decoded attributes. The decoded geometry and decoded attributes are used to restore the point cloud content (decoded point cloud).

[0168] FIG. 11 is a diagram illustrating an example of a point cloud decoder according to an embodiment.

[0169] The point cloud decoder shown in FIG. 11 is an example of the point cloud decoder described in FIG. 10, and performs a decoding operation which is the reverse process of the encoding operation of the point cloud encoder described in FIGS. 1 to 9.

[0170] As explained in Figures 1 and 10, the point cloud decoder performs geometry decoding and feature decoding. Geometry decoding is performed before feature decoding.

[0171] The point cloud decoder according to the embodiment includes an arithmetic decoder 11000, an octree synthesis unit 11001, a surface approximation synthesis unit 11002, a reconstruct geometry unit 11003, an inverse transform coordinates unit 11004, an arithmetic decoder 11005, an inverse quantize unit 11006, a RAHT transform unit 11007, a generate LOD unit 11008, an inverse lifting unit 11009 and / or an inverse transform colors unit 11010.

[0172] The arithmetic decoder 11000, the octree synthesis unit 11001, the surface approximation synthesis unit 11002, the geometry reconstruction unit 11003, and the coordinate system inverse transformation unit 11004 perform geometry decoding. The geometry decoding according to the embodiment includes direct coding and trisoup geometry decoding. The direct coding and trisoup geometry decoding are selectively applied. Furthermore, the geometry decoding is not limited to the above examples, and is performed in the reverse process of the geometry encoding described in FIG. 1 to FIG. 9.

[0173] 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.

[0174] The octree synthesis unit 11001 according to the embodiment obtains an exclusive code from the decoded geometry bitstream (or from the decoded result, information on the secured geometry) to generate an octree. The exclusive code is described in detail in FIG. 1 to FIG. 9.

[0175] The surface approximation synthesis unit 11002 according to the embodiment synthesizes a surface based on the decoded geometry and / or the generated octree if trisoup geometry encoding is applied.

[0176] The geometry reconstruction unit 11003 according to the embodiment regenerates geometry based on the surface and / or the decoded geometry. As described in FIG. 1 to FIG. 9, direct coding and trisoup geometry coding are selectively applied. Therefore, the geometry reconstruction unit 11003 directly brings and adds position information of the point to which the direct coding is applied. Also, when the trisoup geometry coding is applied, the geometry reconstruction unit 11003 restores the geometry by performing the reconstruction operation of the geometry reconstruction unit 40005, for example, triangulation, upsampling, and voxelization operations. The detailed contents are omitted since they are the same as those described in FIG. 6. The restored geometry includes a point cloud picture or frame that does not include features.

[0177] A coordinate system inverse transformation unit 11004 according to the embodiment transforms the coordinate system based on the reconstructed geometry to obtain the position of the point.

[0178] The arithmetic decoder 11005, the inverse quantization unit 11006, the RAHT transform unit 11007, the LOD generating unit 11008, the inverse lift unit 11009 and / or the color inverse transform unit 11010 perform the feature decoding described in FIG. 10. The feature decoding according to the embodiment includes RAHT (Region Adaptive Hierarchial Transform) decoding, Interpolarization-based hierarchical nearest-neighbour prediction-Prediction Transform decoding, and Lift Transform (interpolation-based hierarchical nearest-neighbour prediction with an update / lifting step (Lifting Transform)) decoding. The above three decodings are used selectively, or one or more combinations of decodings are used. In addition, the feature decoding according to the embodiment is not limited to the above examples.

[0179] An arithmetic decoder 11005 according to an embodiment decodes the attribute bitstream into arithmetic coding.

[0180] The inverse quantization unit 11006 according to the embodiment inverse quantizes the decoded feature bitstream or the information on the feature acquired as a result of decoding, and outputs the inverse quantized feature (or feature value). The inverse quantization is selectively applied based on the feature coding of the point cloud encoder.

[0181] In an embodiment, the RAHT transformer 11007, LOD generator 11008 and / or inverse lifter 11009 process the reconstructed geometry and dequantized features. As described above, the RAHT transformer 11007, LOD generator 11008 and / or inverse lifter 11009 selectively perform decoding operations corresponding to the encoding of the point cloud encoder.

[0182] The color inverse converter 11010 according to the embodiment performs inverse coding to inversely convert color values ​​(or textures) included in the decoded features. The operation of the color inverse converter 11010 is selectively performed based on the operation of the color converter 40006 of the point cloud encoder.

[0183] The elements of the point cloud decoder of Figure 11 may be implemented in hardware, software, firmware, or a combination thereof, including one or more processors or integrated circuits (not shown) configured to communicate with one or more memories included in the point cloud providing device. The one or more processors perform any of the operations and / or functions of the elements of the point cloud decoder of Figure 11 described above. Additionally, the one or more processors operate or execute a software program and / or set of instructions to perform the operations and / or functions of the elements of the point cloud decoder of Figure 11.

[0184] FIG. 12 illustrates an example of a transmitting device according to an embodiment.

[0185] The transmitting device shown in FIG. 12 is an example of the transmitting device 10000 in FIG. 1 (or the point cloud encoder in FIG. 4). The transmitting device shown in FIG. 12 performs any of the same or similar operations and methods as the operations and encoding methods of the point cloud encoder described in FIG. 1 to FIG. 9. The transmitting device according to the embodiment includes a data input unit 12000, a quantization processing unit 12001, a voxelization processing unit 12002, an octree occupation code generation unit 12003, a surface model processing unit 12004, an intra / inter coding processing unit 12005, an arithmetic coder 12006, a metadata processing unit 12007, a hue conversion processing unit 12008, a characteristic conversion processing unit (or attribute conversion processing unit) 12009, a prediction / lift / RAHT conversion processing unit 12010, an arithmetic coder 12011 and / or a transmission processing unit 12012.

[0186] According to the embodiment, the data input unit 12000 receives or acquires point cloud data. The data input unit 12000 performs an operation and / or an acquisition method that is the same as or similar to the operation and / or acquisition method of the point cloud video acquisition unit 10001 (or the acquisition process 20000 shown in FIG. 2).

[0187] Geometry encoding is performed by a data input unit 12000, a quantization processing unit 12001, a voxelization processing unit 12002, an octree occupation code generation unit 12003, a surface model processing unit 12004, an intra / inter coding processing unit 12005, and an arithmetic coder 12006. The geometry encoding according to the embodiment is the same as or similar to the geometry encoding described with reference to Figures 1 to 9, and therefore a detailed description thereof will be omitted.

[0188] The quantization unit 12001 according to the embodiment quantizes geometry (e.g., position values ​​of points). The operation and / or quantization of the quantization unit 12001 is the same as or similar to the operation and / or quantization of the quantization unit 40001 shown in Fig. 4. The specific description is as described in Figs. 1 to 9.

[0189] The voxelization processing unit 12002 according to the embodiment voxels the position values ​​of the quantized points. The voxelization processing unit 120002 performs operations and / or processes that are the same as or similar to the operations and / or voxelization processes of the quantization unit 40001 shown in Fig. 4. The details are as described in Figs. 1 to 9.

[0190] The octree occupation code generator 12003 according to the embodiment performs octree coding on the positions of the voxelized points based on the octree structure. The octree occupation code generator 12003 generates an occupation code. The octree occupation code generator 12003 performs operations and / or methods that are the same as or similar to the operations and / or methods of the point cloud encoder (or the octree analysis unit 40002) described in Figures 4 and 6. The details are as described in Figures 1 to 9.

[0191] The surface model processing unit 12004 according to the embodiment performs trisoup geometry encoding to reconstruct the positions of points within a specific region (or node) on a voxel basis based on a surface model. The surface model processing unit 12004 performs operations and / or methods that are the same as or similar to those of the point cloud encoder (e.g., the surface approximation analysis unit 40003) shown in Fig. 4. The details are as described in Figs. 1 to 9.

[0192] The intra / inter coding unit 12005 according to the embodiment performs intra / inter coding of the point cloud data. The intra / inter coding unit 12005 performs coding that is the same as or similar to the intra / inter coding described in FIG. 7. The details are as described in FIG. 7. In the embodiment, the intra / inter coding unit 12005 is included in the arithmetic coder 12006.

[0193] According to an embodiment, the arithmetic coder 12006 entropy codes the octree and / or the approximated octree of the point cloud data. For example, the encoding method includes an arithmetic encoding method. The arithmetic coder 12006 performs operations and / or methods that are the same as or similar to those of the arithmetic encoder 40004.

[0194] The metadata processing unit 12007 according to the embodiment processes metadata related to point cloud data, such as setting values, and provides the metadata to necessary processing such as geometry encoding and / or feature encoding. The metadata processing unit 12007 according to the embodiment also generates and / or processes signaling information related to geometry encoding and / or feature encoding. The signaling information according to the embodiment is encoded and processed separately from the geometry encoding and / or feature encoding. The signaling information according to the embodiment may also be interleaved.

[0195] The hue conversion processor 12008, the feature conversion processor 12009, the prediction / lift / RAHT conversion processor 12010, and the arithmetic coder 12011 perform feature coding. The feature coding according to the embodiment is the same as or similar to the feature coding described in Figs. 1 to 9, so a detailed description thereof will be omitted.

[0196] The hue conversion processing unit 12008 according to the embodiment performs hue conversion coding to convert a hue value included in a feature. The hue conversion processing unit 12008 performs hue conversion coding based on the reconstructed geometry. The reconstructed geometry is as described in FIG. 1 to FIG. 9. The hue conversion processing unit 12008 performs operations and / or methods that are the same as or similar to the operations and / or methods of the color conversion unit 40006 described in FIG. 4. Detailed description will be omitted.

[0197] The feature conversion processing unit 12009 according to the embodiment performs feature conversion to convert features based on positions where geometry coding has not been performed and / or reconstructed geometry. The feature conversion processing unit 12009 performs the same or similar operation and / or method as the feature conversion unit 40007 described in FIG. 4. Detailed description will be omitted. The prediction / lift / RAHT conversion processing unit 12010 according to the embodiment codes the converted features by one or a combination of RAHT coding, predictive conversion coding, and lift conversion coding. The prediction / lift / RAHT conversion processing unit 12010 performs one of the same or similar operations as the RAHT conversion unit 40008, the LOD generating unit 40009, and the lift conversion unit 40010 described in FIG. 4. In addition, the predictive conversion coding, lift conversion coding, and RAHT conversion coding are the same as those described in FIG. 1 to FIG. 9, so detailed description will be omitted.

[0198] The arithmetic coder 12011 according to the embodiment encodes the coded attribute based on arithmetic coding. The arithmetic coder 12011 performs operations and / or methods that are the same as or similar to the operations and / or methods of the arithmetic encoder 400012.

[0199] The transmission processing unit 12012 according to the embodiment transmits each bitstream including the coded geometry and / or coded attribute and metadata information, or transmits the coded geometry and / or coded attribute and metadata information in one bitstream. When the coded geometry and / or coded attribute and metadata information according to the embodiment is configured in one bitstream, the bitstream includes one or more sub-bitstreams. The bitstream according to the embodiment includes signaling information including a Sequence Parameter Set (SPS) for sequence level signaling, a Geometry Parameter Set (GPS) for signaling geometry information coding, an Attribute Parameter Set (APS) for signaling attribute information coding, and a Tile Parameter Set (TPS) for tile level signaling, and slice data. The slice data includes information about one or more slices. One slice according to the embodiment includes one geometry bitstream (Geometry Parameter Set (GPS) for signaling geometry information coding, an Attribute Parameter Set (APS) for signaling attribute information coding, and a Tile Parameter Set (TPS) for tile level signaling. 0 ) and one or more attribute bit streams (Attr0 0 , Attr1 0 ).

[0200] A slice refers to a series of syntax elements that represents all or a portion of a coded point cloud frame.

[0201] The TPS according to the embodiment includes information on each tile (e.g., bounding box coordinate information and height / size information, etc.) for one or more tiles. The geometry bitstream includes a header and a payload. The header of the geometry bitstream according to the embodiment includes identification information of a parameter set included in the GPS (geom_parameter_set_id), a tile identifier (geom_tile_id), a slice identifier (geom_slice_id), and information on data included in the payload. As described above, the metadata processing unit 12007 according to the embodiment can generate and / or process signaling information and transmit it to the transmission processing unit 12012. In the embodiment, the element performing geometry coding and the element performing attribute coding can share data / information with each other as shown by the dotted line. The transmission processing unit 12012 according to the embodiment performs an operation and / or a transmission method that is the same as or similar to the operation and / or transmission method of the transmitter 10003. A detailed description is omitted as it is the same as that described in FIG. 1 and FIG. 2.

[0202] FIG. 13 illustrates an example of a receiving device according to the embodiment.

[0203] The receiving device shown in Fig. 13 is an example of the receiving device 10004 in Fig. 1 (or the point cloud decoder in Figs. 10 and 11). The receiving device shown in Fig. 13 performs any of the same or similar operations and methods as the operations and decoding methods of the point cloud decoder described in Figs. 1 to 11.

[0204] The receiving device according to the embodiment includes a receiving unit 13000, a receiving processing unit 13001, an arithmetic decoder 13002, an occupancy code based octree reconstruction processing unit 13003, a surface model processing unit (triangle reconstruction, upsampling, voxelization) 13004, an inverse quantization processing unit 13005, a metadata analysis 13006, an arithmetic decoder 13007, an inverse quantization processing unit 13008, a prediction / lift / RAHT inverse transform processing unit 13009, a hue inverse transform processing unit 13010, and / or a renderer 13011. Each component of the decoding according to the embodiment performs the inverse process of the component of the encoding according to the embodiment.

[0205] The receiving unit 13000 according to the embodiment receives point cloud data. The receiving unit 13000 performs an operation and / or a receiving method that is the same as or similar to the operation and / or the receiving method of the receiver 10005 of Fig. 1. A detailed description will be omitted.

[0206] The receiving processor 13001 according to the embodiment obtains a geometry bit stream and / or an attribute bit stream from the received data. The receiving processor 13001 is included in the receiving unit 13000.

[0207] Geometry decoding is performed by an arithmetic decoder 13002, an exclusive code based octree reconstruction processor 13003, a surface model processor 13004, and an inverse quantization processor 13005. The geometry decoding according to the embodiment is the same as or similar to the geometry decoding described in Figures 1 to 10, so a detailed description will be omitted.

[0208] The computation decoder 13002 according to the embodiment decodes the geometry bitstream based on computation coding. The computation decoder 13002 performs operations and / or coding that are the same as or similar to those of the computation decoder 11000.

[0209] The exclusive code based octree reconstruction processor 13003 according to the embodiment obtains an exclusive code from the decoded geometry bitstream (or from the decoded result, information on the secured geometry) and reconstructs an octree. The exclusive code based octree reconstruction processor 13003 performs an operation and / or method identical or similar to the operation of the octree synthesis unit 11001 and / or an octree generation method. The surface model processor 13004 according to the embodiment performs trisoup geometry decoding and associated geometry reconstruction (e.g., triangle reconstruction, upsampling, voxelization) based on a surface model scheme when trisoup geometry encoding is applied. The surface model processor 13004 performs an operation identical or similar to the operation of the surface approximation synthesis unit 11002 and / or the geometry reconstruction unit 11003.

[0210] The inverse quantization unit 13005 according to the embodiment inverse quantizes the decoded geometry.

[0211] According to an embodiment, the metadata analysis 13006 analyzes metadata, such as setting values, included in the received point cloud data. The metadata analysis 13006 transmits the metadata to the geometry decoder and / or the feature decoder. A detailed description of the metadata is omitted here as it has been described in FIG. 12.

[0212] The arithmetic decoder 13007, the inverse quantization processor 13008, the prediction / lift / RAHT inverse transform processor 13009, and the hue inverse transform processor 13010 perform feature decoding. The feature decoding is the same as or similar to the feature decoding described in FIG. 1 to FIG. 10, and therefore a detailed description thereof will be omitted.

[0213] The computation decoder 13007 according to the embodiment decodes the attribute bitstream into computation coding. The computation decoder 13007 performs decoding of the attribute bitstream based on the reconstructed geometry. The computation decoder 13007 performs operations and / or coding that are the same or similar to those of the computation decoder 11005.

[0214] The inverse quantization unit 13008 according to the embodiment inversely quantizes the decoded characteristic bit stream. The inverse quantization unit 13008 performs the same or similar operation and / or method as the inverse quantization unit 11006.

[0215] The prediction / lift / RAHT inverse transform processing unit 13009 according to the embodiment processes the reconstructed geometry and the inverse quantized features. The prediction / lift / RAHT inverse transform processing unit 13009 performs any of the same or similar operations and / or decoding as those of the RAHT transform unit 11007, the LOD generating unit 11008, and / or the inverse lift unit 11009. The hue inverse transform processing unit 13010 according to the embodiment performs inverse transform coding for inversely transforming color values ​​(or textures) included in the decoded features. The hue inverse transform processing unit 13010 performs the same or similar operations and / or inverse transform coding as those of the color inverse transform unit 11010. The renderer 13011 according to the embodiment renders the point cloud data.

[0216] FIG. 14 is a diagram illustrating an example of a structure that can be linked to a method / apparatus for transmitting and receiving point cloud data according to an embodiment.

[0217] 14 illustrates a configuration in which any of a server 1460, a robot 1410, an autonomous vehicle 1420, an XR device 1430, a smartphone 1440, a home appliance 1450, and / or an HMD 1470 are connected to a cloud network 1410. The robot 1410, the autonomous vehicle 1420, the XR device 1430, the smartphone 1440, or the home appliance 1450 may also be referred to as an apparatus. The XR device 1430 may correspond to a point cloud data (PCC) device or may be linked to a PCC device according to an embodiment.

[0218] Cloud network 1400 refers to a network that constitutes a part of a cloud computing infrastructure or exists within a cloud computing infrastructure, where cloud network 1400 is configured using a 3G network, a 4G or LTE network, a 5G network, or the like.

[0219] The server 1460 may be coupled to any of the robot 1410, autonomous vehicle 1420, XR device 1430, smartphone 1440, home appliance 1450, and / or HMD 1470 via the cloud network 1400 and may assist with at least some of the processing of the coupled devices 1410-1470.

[0220] The HMD (Head-Mount Display) 1470 represents any of the types of XR devices and / or PCC devices according to the embodiment. The HMD type device according to the embodiment includes a communications unit, a control unit, a memory unit, an I / O unit, a sensor unit, and a power supply unit.

[0221] Various embodiments of the devices 1410 to 1450 to which the above-mentioned technology is applied will be described below. Here, the devices 1410 to 1450 shown in Fig. 14 can be linked / coupled to the point cloud data transmitting / receiving device according to the above-mentioned embodiment.

[0222] <PCC + XR>

[0223] The XR / PCC device 1430 may be embodied in a Head-Mount Display (HMD), a Head-Up Display (HUD) installed in a vehicle, a TV, a mobile phone, a smartphone, a computer, a wearable device, a home appliance, a digital sign, a vehicle, a fixed robot, a mobile robot, etc. by applying PCC and / or XR (AR+VR) technology.

[0224] The XR / PCC device 1430 may obtain information about the surrounding space or real objects by analyzing 3D point cloud data or image data obtained by various sensors or from an external device to generate position data and attribute data for 3D points, and may render and output the XR object to be output. For example, the XR / PCC device 1430 may output an XR object including additional information about the recognized object in correspondence with the corresponding recognized object.

[0225] <PCC + XR + Mobile Phone>

[0226] The XR / PCC device 1430 may be implemented as a mobile phone 1440 or the like to which PCC technology is applied.

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

[0228] <PCC + Autonomous Driving + XR>

[0229] The autonomous vehicle 1420 is realized as a mobile robot, a vehicle, an unmanned aerial vehicle, etc. by applying PCC technology and XR technology.

[0230] The autonomous vehicle 1420 to which the XR / PCC technology is applied refers to an autonomous vehicle equipped with a means for providing an XR image, an autonomous vehicle that is the target of control / interaction within the XR image, etc. In particular, the autonomous vehicle 1420 that is the target of control / interaction within the XR image may be separated from the XR device 1430 and may be linked to each other.

[0231] The autonomous vehicle 1420 equipped with a means for providing an XR / PCC image obtains sensor information from sensors including a camera, and outputs an XR / PCC image generated based on the obtained sensor information. For example, the autonomous vehicle 1420 may provide the passenger with an XR / PCC object corresponding to a real object or an object on a screen by outputting an XR / PCC image through a HUD.

[0232] At this time, when the XR / PCC object is output to the HUD, at least a part of the XR / PCC object is output to overlap with an actual object toward which the passenger's gaze is directed. On the other hand, when the XR / PCC object is output to a display provided in the autonomous vehicle, at least a part of the XR / PCC object is output to overlap with an object in the screen. For example, the autonomous vehicle 1220 may output XR / PCC objects corresponding to objects such as a road, another vehicle, a traffic light, a traffic sign, a motorcycle, a pedestrian, a building, etc.

[0233] The VR (Virtual Reality) technology, the AR (Augmented Reality) technology, the MR (Mixed Reality) technology, and / or the PCC (Point Cloud Compression) technology according to the embodiment can be applied to various devices.

[0234] That is, VR technology is a display technology that provides real objects and backgrounds only in CG images. On the other hand, AR technology is a technology that displays virtual CG images on top of images of real things. Also, MR technology is similar to the AR technology in that it mixes virtual objects into the real world. However, AR technology clearly distinguishes between real objects and virtual objects made of CG images, and uses virtual objects to complement real objects, while MR technology is different from AR technology in that virtual objects and real objects are considered to have the same characteristics. More specifically, for example, the MR technology is applied to hologram services.

[0235] However, recently, rather than clearly distinguishing between VR, AR, and MR technologies, they are also referred to as XR (extended reality) technology. Therefore, the embodiments of the present invention can be applied to any of VR, AR, MR, and XR technologies. These technologies are applied with encoding / decoding based on PCC, V-PCC, and G-PCC technologies.

[0236] The PCC method / apparatus according to the embodiment can be applied to vehicles providing autonomous driving services.

[0237] Vehicles providing autonomous driving services are connected to the PCC device via wired or wireless communication.

[0238] When the point cloud data (PCC) transceiver according to the embodiment is connected to a vehicle for wired or wireless communication, it can receive / process AR / VR / PCC service related content data that can be provided along with an autonomous driving service and transmit it to the vehicle. Also, when the point cloud data transceiver is installed in a vehicle, the point cloud transceiver can receive / process AR / VR / PCC service related content data according to a user input signal inputted to a user interface device and provide it to a user. The vehicle or user interface device according to the embodiment receives a user input signal. The user input signal according to the embodiment includes a signal instructing an autonomous driving service.

[0239] The point cloud data transmission method / apparatus according to the embodiment may be interpreted as terms referring to the transmitting device 10000 of FIG. 1, the point cloud video encoder 10002, the transmitter 10003, the capture-encode-transmit 20000-20001-20002 of FIG. 2, the encoder of FIG. 4, the transmitting device of FIG. 12, the device of FIG. 14, the processor (motion vector classifier) ​​of FIG. 15, etc.

[0240] The point cloud data receiving method / apparatus according to the embodiment may be interpreted as terms referring to the receiving device 10004, receiver 10005, point cloud video decoder 10006 of FIG. 1, the transmit-decode-render 20002-20003-20004 of FIG. 2, the decoders of FIGS. 10 and 11, the receiving device of FIG. 13, the device of FIG. 14, the processor (motion vector classifier) ​​of FIG. 15, etc.

[0241] In addition, the point cloud data transmitting / receiving method / apparatus according to the embodiment may be abbreviated to a method / apparatus according to the embodiment.

[0242] In the embodiment, the geometry data, geometry information, position information, etc. constituting the point cloud data are interpreted as having the same meaning. The characteristic data, characteristic information, attribute information, etc. constituting the point cloud data are interpreted as having the same meaning.

[0243] The method / apparatus according to the embodiment defines and encodes / decodes a data distribution adaptive prediction unit for PCC content compression (The method for defining Distribution adaptive Prediction Unit on PCC).

[0244] The encoding / decoding method according to the embodiment compresses and restores point cloud data on a frame-by-frame basis. In particular, the method is for increasing compression efficiency of point cloud data having one or more frames, and the embodiment defines and uses a prediction unit (PU) to apply an inter-frame prediction technique. The prediction unit according to the embodiment is variously called a unit, a first unit, a region, a first region, etc., depending on the embodiment.

[0245] The embodiment provides a method for compressing data consisting of a point cloud. Specifically, a method is proposed for processing PUs containing a very small number of points for effective compression of a point cloud having one or more frames.

[0246] In the EM (inter prediction) technology, the method applied to perform motion estimation is a look up table (LUT) consisting of unit vectors in different directions, from a minimum of 6 to a maximum of 26. Motion compensation is performed using the best motion vector after searching for the best motion vector that can be added to the current frame point based on the vector difference of the point to be estimated.

[0247] In this case, the information of the unit vector defined in the LUT is applied to the smallest vector LUT consisting of 6 vectors obtained by rotating 90° for each axis, or the largest LUT with a search pattern consisting of 26 unit vectors defined in a searching pattern and tilted at 45° in all directions. The LUT is not adaptively applied depending on the situation, but the user must manually switch the LUT according to their needs. This search pattern has the advantage that it can find a motion vector by repeatedly executing it in a predetermined search direction, and it is a method of finding the scale factor x searching pattern with the smallest difference for each target vector - scale factor x searching pattern, and repeatedly adjusting the scale factor to find the closest motion vector.

[0248] However, this method can also be applied when the number of points to be searched for in the search window and the number of points in the current node in the current frame are too small. However, applying this method to perform motion vector estimation for two or three points would be an excessive waste of cost, and since the RDO value is used as the basis for determining the information, the accuracy may decrease when the number of points is very small.

[0249] The embodiment provides a method for directly processing motion vector estimation through a separate classification process, rather than using the existing excessive motion vector estimation method, when the number of target points is less than a predetermined number when performing motion vector estimation.

[0250] In the embodiment, based on a motion vector direct coding mode (MVDCM), if the number of points contained within a search window and a prediction unit is less than a predetermined number, the points are processed separately from other points.

[0251] Also, if the points included in the search window and prediction unit are minimal, the motion vector estimation process may be omitted.

[0252] If the points contained within the search region and prediction unit are minimal, the transmitter omits motion vector information and the receiver calculates and applies motion vectors based on information indicating the state of the search region and prediction unit.

[0253] In the case of MVDCM, motion vectors are calculated separately from existing prediction unit-based motion vector estimation / compensation methods.

[0254] Modifications and combinations between the embodiments are possible. Terms used in this specification are understood based on the intended meaning of the terms within the scope of their widespread use in the art. Although the specification illustrates a case where attribute information (characteristic data) is subsampled, the specification can also be applied to a case where position information (geometry data) is subsampled, a case where the points themselves are subsampled, or a case where information constituting a point cloud is subsampled to be asymmetrically constructed.

[0255] Although the operation of the method / apparatus according to the embodiment is based on position information, it can be applied to any of point units, asymmetric division units, attribute information units, or position and attribute information units.

[0256] FIG. 15 illustrates a motion vector classifier according to an embodiment.

[0257] The motion vector classifier according to the embodiment of Figure 15 is included in or corresponds to the transmitting device 10000, point cloud video encoder 10002, receiving device 10004, point cloud video decoder 10006, encoding 20001 and decoding 20003 of Figure 2, encoder of Figure 4, decoder of Figures 10 and 11, transmitting device of Figure 12, receiving device of Figure 13, XR device 1430 of Figure 14, encoding method of Figure 26, decoding method of Figure 27, transmitting method of Figure 28, receiving method of Figure 29, etc.

[0258] Each component in FIG. 15 corresponds to hardware, software, a processor, and / or a combination thereof.

[0259] The motion vector classifier (or may also be referred to as a processor, controller, etc.) according to an embodiment includes a classifier 1500 and a motion vector estimator 1501 .

[0260] In Figure 15, if the number of points included in the search target is less than a reference value, the motion vector is selected as a target for direct coding, and the motion vector is directly calculated and classified without estimation. When there are point clouds of a reference frame and a current frame, and a prediction unit (PU) is defined in the current frame, the search window area is defined as follows:

[0261] Search window[3] = PU[3] + motion_window_size[3]

[0262] Search window, PU, ​​and motion_window_size are arrays with three values, and the search window and PU are in the form of a cube or cuboid, and the search area includes the PU and is indicated as an area larger than the PU. By defining it as a cube or cuboid, the size of each of the three axes may be different or the same.

[0263] After the prediction unit and the search area are defined, the points corresponding to the PU area in the point cloud corresponding to the current frame are selected as targets for motion vector estimation, and the points included in the search area in the point cloud of the reference frame are found and selected as targets for motion vector estimation, and a primary classification is performed.

[0264] A reference frame is a frame that is used as a reference for encoding / decoding a current frame. It may be a frame that has been previously encoded / decoded of the current frame.

[0265] The motion vector classifier according to the embodiment selects a prediction unit on the current frame and / or the reference frame to define a search region when the number of points included in the search target is equal to or less than a reference value.

[0266] The motion vector classifier according to the embodiment selects points within the range of the PU and the search area, depending on the shape and size of the PU and the search area.

[0267] The motion vector classifier according to the embodiment checks whether a point in a current frame is subject to MVDCM (also called direct coding, specific coding mode, etc.) and counts the number of points included in a PU and / or a search region.

[0268] The classifier 1500 according to the embodiment determines a motion vector for the MVDCM if the point is a MVDCM interest point.

[0269] The motion vector estimator 1501 according to the embodiment performs motion vector estimation if the point is not a MVDCM interest point.

[0270] The current frame is also called the first frame, and the reference frame is also called the second frame.

[0271] FIG. 16 shows a reference frame and a current frame according to an embodiment.

[0272] FIG. 16 shows a reference frame and a current frame used in the motion vector based encoding / decoding in FIG. 15 and the like.

[0273] As shown in FIG. 16, points in areas corresponding to similar positions in two frames are targeted for motion vector estimation.

[0274] An encoder / decoder according to an embodiment encodes / decodes a current frame 1601. The current frame 1601 includes points (geometry data and / or characteristic data 1603). To encode / decode the current frame 1601, a reference frame 1600 is referenced. The reference frame 1600 includes encoded / decoded points 1602. When the target of encoding / decoding the current frame 1601 is a PU 1602, the reference information is searched based on a search area 1604 of the reference frame 1600 to predict the points.

[0275] FIG. 17 illustrates points included in a search area and / or prediction unit according to an embodiment.

[0276] The search areas and prediction units in FIG. 17 are a detailed example of the search areas and prediction units included in the reference frame and the current frame shown in FIG. 15 and FIG.

[0277] As shown in FIG. 16, once the search area and prediction unit (PU) range are determined, the number of points included in the range is counted in each area.

[0278] If there is a small number of points in the search area of ​​the reference frame, and the numbers are the same, or the number of points in the search area and the number of points in the prediction unit are different, and the number of points in the prediction unit is the same as the reference points for MVDCM, then it is subject to MVDCM (Motion Vector Direct Coding Mode).

[0279] Signaling capable of distinguishing that the PU is MVDCM and signaling indicating point reference information that can be classified as MVDCM may be added to the bitstream of FIG.

[0280] For example, the search area of ​​the reference frame contains three points, such as Pr1, Pr2, and Pr3, while the prediction unit of the current frame contains three points, such as Pc1, Pc2, and Pc3.

[0281] 18, 19, 20 and 21 show the operation of motion vector estimation according to the embodiment.

[0282] The motion vector estimation shown in Figures 18, 19, 20, and 21 is performed by the motion vector classifier (processor, controller) of Figure 15, a point cloud data transmission / reception method / apparatus including or corresponding to Figure 15, etc. Hereinafter, a processor that performs operations according to the embodiments is also referred to as a motion vector estimator.

[0283] The motion vector estimation method (motion vector estimator) according to the embodiment includes various methods. In one embodiment, any of the following methods is applied.

[0284] If the current prediction unit satisfies the MVDCM condition, it can inherit the point information contained in the search area as is.

[0285] If an inherited point falls outside the prediction unit range, the point may be excluded from the predicted point cloud target as shown in FIG.

[0286] For example, in Fig. 17, when the prediction unit has three points Pc1, Pc2, and Pc3 and the number of points satisfies the MVCDM condition, the information of the points Pr1, Pr2, and Pr3 included in the investigation area is inherited as it is as the point information of the prediction unit. For example, the position information (geometry data) and attribute information (characteristic data) of Pr1, Pr2, and Pr3 are inherited as the position information (geometry data) and attribute information (characteristic data) of Pc1, Pc2, and Pc3.

[0287] Here, the inherited Pr1, Pr2, and Pr3 points may be out of the prediction unit range. For example, Pr1 is out of the PU range. The method / apparatus according to the embodiment can exclude the inherited points that are out of the range from the predicted point cloud. The prediction points become Pr2 and Pr3 of the reference frame.

[0288] The motion vector estimator according to the embodiment searches for the position of the search area and the PU block that is closest to the origin, for example, the point located at the bottom left front edge is selected.

[0289] According to FIG. 19, the distance from the point located at the front left of the bottom edge of the search area to the point connected by the arrow is defined as a vector, and if the MVDCM condition is satisfied, the vector is applied to the point included in the search area to perform motion vector compensation.

[0290] If the compensated point is contained within the predictor, i.e., a block of the same position / size as the PU, then the point is taken as the predicted point cloud of the PU.

[0291] For example, the motion vector estimator according to the embodiment searches for the position 1900 closest to the origin in the search area, and searches for the position 1901 closest to the origin in the PU. A vector is generated to connect the two points. Here, if the number of points is equal to or less than a reference value, motion vector compensation is performed based on the vector to the points included in the search area for MVDCM. Each of the points predicted (motion compensated) based on the vector is set as a predictor. If the predictor P is included in a block having the same size and / or position as the PU, the point (predictor P) is designated as predicted point cloud data.

[0292] 19, the reference position may be the front left corner of the bottom edge, or the distance 1902 between the points located at the top edge, right edge, and back edge. In this way, motion vectors are searched for based on paired positions based on eight vertices that can divide the search area and the PU area, and the vector with the smallest RDO value is designated as the motion vector.

[0293] A motion estimator according to an embodiment selects two points belonging to corresponding regions between a current frame and a reference frame to perform predictive coding of a current frame, and generates a motion vector for motion compensation. The two points constituting the motion vector are selected as two points having the closest distance. Points having closer distances have more similar positions and / or attributes, and have the smallest residual during predictive coding, enabling efficient encoding and decoding. A point cloud data transmission / reception method / apparatus according to an embodiment generates predicted data (geometry predicted data and / or feature predicted data) of a point included in a current frame based on a point and a motion vector included in a reference frame. The method / apparatus according to an embodiment generates and transmits / receives a residual value between a current point and predicted data.

[0294] According to FIG. 20, one of the vectors connected with the eight points of the nearest prediction unit from the eight points of the search area becomes the motion vector to be applied during compensation, and the RDO value is compared to determine it.

[0295] Although it has been described that both the search region and the prediction unit are cubic and have the same search region in all directions, if the values ​​of each element of motion_window_size[3] change, the prediction unit may be cubic but the search region may be rectangular.

[0296] Its value can be predicted from motion_window_size[3] and prediction unit information, and other motion vectors can be estimated without signaling them by only signaling the position where the selected vector is calculated.

[0297] The difference between the representative value of the points included in the search area of ​​the reference frame and the representative value of the points included in the prediction unit of the current frame is signaled as a motion vector. The representative value is one of the arithmetic mean, the geometric mean, the maximum value, the minimum value, and the median value. The motion vector information according to the embodiment is the motion vector information (MVs) shown in FIG. 24 and the like.

[0298] For example, a motion estimator according to an embodiment generates motion vectors V1, V2, V3, V4, V5, V6, V7, and V8, and selects the motion vector of the most similar point (position / attribute) among V1 to V8.

[0299] The receiving method / apparatus according to the embodiment receives the bitstream of FIG. 22, analyzes motion vector-related information contained in the bitstream, generates prediction data for the current frame, and combines it with the received residual value to restore point cloud data.

[0300] According to FIG. 21, when the current frame and prediction unit are subject to MVDCM or when the search area and prediction unit of the reference frame are both subject to MVDCM, representative values ​​PR (representative point of reference frame) and PC (representative point of current frame) are calculated within each search area and prediction unit, and the motion vector = PR-PC (difference value between the representative point of reference frame and the representative point of current frame) can be calculated. The receiving device analyzes signaling information indicating that a motion vector has been generated in the prediction unit using the MVDCM method from the bitstream, and receives the motion vector found using the representative value.

[0301] For example, the method / apparatus according to the embodiment generates a point representative of points included in the search region and prediction unit region. The representative value (representative point) is selected based on the arithmetic mean, geometric mean, maximum value, minimum value, median value, any value that can statistically give representative characteristics, etc. of the points. In this case, the motion vector 2100 is generated using the representative point.

[0302] In other words, the motion vector compensation method according to the embodiment performs motion compensation based on 1) inheriting search area point information as it is (FIG. 18), 2) selecting a specific point among points included in the search area and prediction unit to generate a motion vector (FIGS. 19 and 20), and / or 3) selecting a representative point in the search area and prediction unit to generate a motion vector (FIG. 21), etc. Among the motion vector compensation methods according to the embodiment, one or more methods are selectively used.

[0303] FIG. 22 illustrates a bitstream containing point cloud data according to an embodiment.

[0304] In the point cloud data transmission method / apparatus according to the embodiment, the transmitting device 10000 of FIG. 1, the point cloud video encoder 10002, the transmitter 10003, the capture-encode-transmit 20000-20001-20002 of FIG. 2, the encoder of FIG. 4, the transmitting device of FIG. 12, the device of FIG. 14, the processor (motion vector classifier) ​​of FIG. 15, etc. encode the point cloud data, generate parameters such as those of FIG. 23 to FIG. 25, and generate and transmit a bitstream including the point cloud data and the parameters.

[0305] In the point cloud data receiving method / apparatus according to the embodiment, the receiving device 10004, receiver 10005, point cloud video decoder 10006 of FIG. 1, the transmit-decode-render 20002-20003-20004 of FIG. 2, the decoder of FIG. 10 and FIG. 11, the receiving device of FIG. 13, the device of FIG. 14, the processor (motion vector classifier) ​​of FIG. 15, etc. receive a bitstream including point cloud data and parameters, and reconstruct the point cloud data based on the parameters.

[0306] The method / apparatus according to the embodiment classifies the motion compensation method when the number of points included in the search target is equal to or less than a reference value, and defines information about the method on the bitstream. This embodiment notifies that the MVDCM method is applied in a sequence parameter set (SPS), and delivers all or part of the MVDCM information related information to the sequence parameter set according to the implementation method, and delivers each information in a geometry parameter set (SPS), a slice header (also called a data unit), an SEI message, etc.

[0307] Also, they are defined in corresponding or predetermined positions depending on the application or system, and are used with different scopes of application, application methods, etc. Also, when the syntax elements defined below are applied to multiple point cloud data streams, not just the current point cloud data stream, they are delivered by a superordinate parameter set, etc.

[0308] To add / execute the embodiment, relevant information is signaled. Hereinafter, parameters according to the embodiment (variously referred to as metadata, signaling information, etc.) are generated in a process of a transmitter according to the embodiment described below, delivered to a receiver according to the embodiment, and used in a reconstruction process. For example, parameters according to the embodiment are generated in a metadata processing unit (or metadata generating unit) of a transmitting device according to the embodiment described below, and obtained from a metadata analyzing unit of a receiving device according to the embodiment. Point cloud data is encoded as shown in FIG. 22.

[0309] The abbreviations stand for the following: SPS: Sequence Parameter Set, GPS: Geometry Parameter Set, APS: Attribute Parameter Set, TPS: Tile Parameter Set, Geom: Geometry bitstream = geometry slice header + geometry slice data, Attr: Attribute bitstream = attribute brick header + attribute brick data.

[0310] According to the embodiment, a slice is also called a data unit. For example, a geometry slice header is a geometry data unit header, and an attribute slice header is an attribute data unit. A data unit indicates point cloud data (geometry data / attribute data) corresponding to a unit of encoding / decoding.

[0311] A bitstream according to the embodiment includes one or more data units. The data unit includes a header including indication information regarding the payload (geometry / attributes) on the data unit. A tile is a unit including slices (data units). Tiles, slices, and data units are referenced to each other by position information, width, height, depth information, identification information (ID), etc. regarding the tiles, slices, and data units. One data unit consists of one geometry and multiple attributes. For example, a receiving device receives the bitstream of FIG. 22 and identifies the slices included in one tile. It also restores the geometry data and attribute data of each slice.

[0312] FIG. 23 shows a sequence parameter set and a geometry parameter set according to an embodiment.

[0313] FIG. 23 shows the SPS and GPS included in the bit stream of FIG.

[0314] An SPS according to an embodiment includes the following information:

[0315] Simple Profile (simple_profile_compliant): Equal to 1 indicates that the bitstream adheres to the simple profile. Simple_profile_compliant equal to 0 indicates that the bitstream adheres to a profile other than the simple profile.

[0316] dense_profile_compliant: equal to 1 indicates that the bitstream adheres to the dense profile. density_profile_compliant equal to 0 indicates that the bitstream adheres to a profile other than the dense profile.

[0317] predictive_profile_compliant: equal to 1 indicates that the bitstream adheres to the predictive profile. predictive_profile_compliant equal to 0 indicates that the bitstream adheres to a profile other than the predictive profile.

[0318] Main Profile (main_profile_compliant): Equal to 1 indicates that the bitstream complies with the base profile. main_profile_compliant equal to 0 indicates that the bitstream complies with a profile other than the base profile.

[0319] Slice reordering constraint (slice_reordering_constraint): equal to 1 indicates that the bitstream is sensitive to slice reordering and removal. slice_reordering_constraint equal to 0 indicates that the bitstream is not sensitive to slice reordering and removal.

[0320] Unique point positions constraint (unique_point_positions_constraint): equal to 1 indicates that every point has a unique position in each coded point cloud frame. unique_point_positions_constraint equal to 0 indicates that two or more points may have the same position in the coded point cloud frame.

[0321] For example, each slice point may have a unique position, but other slice points in the frame may coincide, in which case the unique_point_positions_constraint is set to 0.

[0322] Sequence Parameter Set ID (sps_seq_parameter_set_id): Identifies the SPS for reference by other DUs. sps_seq_parameter_set_id MUST be 0 in bitstreams conforming to this version of this specification. Other values ​​of sps_seq_parameter_set_id are reserved for future use in ISO / IEC.

[0323] Frame bits (frame_ctr_lsb_bits frame_ctr_lsb): Specifies the length of the syntax element in bits.

[0324] Slice Tag (slice_tag_bits): Indicates the length of the slice_tag syntax element in bits.

[0325] Sequence origin (seq_origin_bits): Indicates the bit length of each syntax element seq_origin_xyz[k].

[0326] seq_origin_xyz[k], seq_origin_log2_scale together: indicates the k-th origin component of the coding coordinate system. If not present, the values ​​of seq_origin_xyz[k] and seq_origin_log2_scale are inferred to be 0. The origin of the coding coordinate system is specified as SeqOrigin[k].

[0327] Bounding box size (seq_bounding_box_size_bits): Indicates the length in bits of each syntax element seq_bounding_box_size_minus1_xyz[k].

[0328] Bounding box size coordinate information (seq_bounding_box_size_minus1_xyz[k]): +1 indicates the kth component, respectively, of the width, height, and depth of the coded volume dimensions in the output coordinate system.

[0329] seq_unit_numerator_minus1, seq_unit_denominator_minus1, seq_unit_is_metres: These indicate the lengths of the output coordinate system X, Y and Z unit vectors.

[0330] Global scale factor (seq_global_scale_factor_log2, seq_global_scale_refinement_bits, seq_global_scale_refinement_factor): Specifies the fixed-point scale factor that derives the output point positions from their positions in the coding coordinate system.

[0331] Adjustment factor (seq_global_scale_refinement_factor): indicates the fine adjustment to the global scale value. If not present, seq_global_scale_refinement_factor is inferred to be 0.

[0332] num_attributes: indicates the number of attributes present in the coded point cloud.

[0333] Attribute Components (attr_components_minus1[attrId]): Indicates the number of components of the attribute.

[0334] Attribute Instance Identifier (attr_instance_id[attrId]): Indicates the instance identifier for the attrId-th attribute.

[0335] The attr_instance_id value is used to distinguish between attributes with the same attribute label, for example a point cloud with various hue attributes sampled from different perspectives.

[0336] Attribute Bit Depth (attr_bitdepth_minus1[attrId]): +1 indicates the bit depth of each component of the attrId-th attribute.

[0337] attr_label_known[attrId], attr_label[attrId], and attr_label_oid[attrId] together identify the type of data transmitted by the attrId-th attribute. attr_label_known[attrId] specifies whether the attribute is identified by the attr_label[attrId] value or by the object identifier attr_label_oid[attrId].

[0338] Attribute types according to attr_label are: 0:Colour, 1:Reflectance, 2:Opacity, 3:Frame index, 4:Frame number, 5:Material identifier, 6:Normal vector.

[0339] Attribute Properties (attr_property_cnt): Indicates the number of attribute_property syntax structures in the SPS for the attribute.

[0340] Geometry axis order (geom_axis_order): indicates the correspondence between the X, Y, and Z axes of the coded point cloud and the S, T, and V axes.

[0341] bypass_stream_enabled: equal to 1 indicates that bypass coding mode is used for reading the bitstream. bypass_stream_enabled equal to 0 indicates that bypass coding mode is not used for reading the bitstream.

[0342] Entropy continuation enabled: Equal to 1 indicates whether the entropy analysis of a DU can depend on the final entropy analysis state of the DU in the previous slice. When slice_reordering_constraint is 0, it is a bitstream conformance requirement that entropy_continuation_enabled be 0.

[0343] sps_extension_present: Equal to 0 indicates that the SPS syntax structure does not contain the sps_extension_data syntax structure.

[0344] In addition, depending on the direct mode information (MVDCM_enable), the sequence parameter set may further include direct point number information (MVDCM_points).

[0345] A receiving device according to the embodiment can efficiently restore point cloud data based on direct mode information.

[0346] A GPS according to an embodiment includes the following information:

[0347] Geometry Parameter Set ID (gps_geom_parameter_set_id): Indicates the GPS for reference by other DUs.

[0348] Sequence Parameter Set ID (gps_seq_parameter_set_id): Indicates the value of the active SPS sps_seq_parameter_set_id.

[0349] Slice Geometry Origin Scale Present (slice_geom_origin_scale_present): Indicates whether slice_geom_origin_log2_scale is present in the GDU header. slice_geom_origin_scale_present equal to 0 indicates that the slice origin scale is the same as gps_slice_geom_origin_log2_scale.

[0350] Geometry origin scale (gps_geom_origin_log2_scale): When slice_geom_origin_scale_present is equal to 0, indicates the magnification factor to derive the slice origin in slice_origin_xyz.

[0351] duplicate_points_enabled equal to 0 specifies that in all slices currently referenced to a GPS, all output points have unique positions within the slice. duplicate_points_enabled equal to 1 indicates that in all slices currently referenced to a GPS, two or more output points may have the same position within the slice.

[0352] Duplicate points enabled (duplicate_points_enabled): Equal to 0 does not prohibit coding the same point position several times within a single slice.

[0353] Geometry tree type (geom_tree_type): equal to 0 indicates that the slice point positions are coded using occupation trees (7.3.3.4). geom_tree_type equal to 1 indicates that the slice point positions are coded using prediction trees (7.3.3.11).

[0354] Octree Point List Present (occtree_point_cnt_list_present): Indicates whether the point count list for each occupancy tree level is present in the GDU footer. If not present, occtree_point_cnt_list_present is inferred to be 0.

[0355] occtree_direct_coding_mode: greater than 0 indicates that the point position is coded by the matching direct node in the occtree. occtree_direct_coding_mode equal to 0 indicates that no direct node exists in the occtree.

[0356] Octree direct joint coding enabled (occtree_direct_joint_coding_enabled): If set to 1, indicates that when two points are coded by a direct node, their positions are jointly coded in part, assuming the location procedure of the points.

[0357] Octree Coded Axis List Present (occtree_coded_axis_list_present): Equal to 1 indicates that the GDU header contains an occtree_coded_axis syntax element that is used to derive the node size for each occtree level. occtree_coded_axis_list_present equal to 0 indicates that the occtree_coded_axis syntax element is not present in the GDU syntax and the occtree can represent a cubic volume.

[0358] Octree Neighborhood Window (occtree_neigh_window_log2_minus1): +1 specifies the number of occupied tree nodes that form a window outside the current node, making it unavailable to processes related to that node. occtree_neigh_window_log2_minus1 equal to 0 indicates that only sibling nodes are considered available to the current node.

[0359] Octree adjacent child enabled (occtree_adjacent_child_enabled): Equal to 1 indicates whether adjacent children of adjacent occupancy tree nodes are used in bit occupancy situations. If not present, occtree_adjacent_child_enabled is inferred to be 0.

[0360] occtree_intra_pred_max_nodesize_log2 indicates the occupancy tree node size appropriate for occupancy intra prediction. If not present, occtree_intra_pred_max_nodesize_log2 is inferred to be 0.

[0361] Octree bitwise coding (occtree_bitwise_coding): equal to 1 indicates that the occupancy tree nodes are coded using the syntax element occupancy_bit with bit contextualization. occtree_bitwise_coding equal to 0 indicates that the occupancy tree nodes are coded using the pre-coded syntax element occupancy_byte.

[0362] occtree_planar_enabled equal to 1 indicates that planar coding mode is active. occtree_planar_enabled equal to 0 indicates that planar coding mode is not active. If not present, occtree_planar_enabled is inferred to be 0.

[0363] Octree Planar Threshold (occtree_planar_threshold[i]): Indicates the activation threshold for the planar coding mode along the i-th direction where the planar coding mode is most likely to be efficient.

[0364] Octree direct mode (occtree_direct_node_rate_minus1): Indicates that only occtree_direct_node_rate_minus1 + 1 of the 32 total eligible direct nodes will be coded.

[0365] geom_angular_enabled: Indicates whether the geometry should be coded using a set of beam priorities located at the angular origin and rotated around the V axis.

[0366] slice_angular_origin_present: Indicates whether the slice-related angular origin is present in the GDU header. slice_angular_origin_present equal to 0 indicates that the angular origin is gps_angular_origin_xyz. If not present, slice_angular_origin_present is inferred to be 0.

[0367] Angular origin (gps_angular_origin_bits_minus1): Indicates the length in bits of each syntax element gps_angular_origin_xyz[k].

[0368] gps_angular_origin_xyz[k]: The kth (x,y,z) position component of the beam origin. If not present, gps_angular_origin_xyz[k] is inferred to be 0.

[0369] Angular azimuth, radius scale (ptree_angular_azimuth_pi_bits_minus11, ptree_angular_radius_scale_log2): These indicate the factors used to adjust the size of positions coded using each coordinate system during conversion to Cartesian coordinates.

[0370] Angular Azimuth Step (ptree_angular_azimuth_step_minus1): +1 indicates a unit change in azimuth angle. Differential prediction residuals used for angular predictive tree coding are fractionally represented in multiples of ptree_angular_azimuth_step_minus1 plus 1. The value of ptree_angular_azimuth_step_minus1 is less than (1<<(ptree_angular_azimuth_pi_bits_minus11 + 12) ).

[0371] Number of beams (num_beams_minus1): +1 indicates the number of beams used for angle coding mode.

[0372] Beam elevation (beam_elevation_init, beam_elevation_diff[i]): The beam elevation as a slope on the plane defined by the first and second coded axes. The elevation slope of each beam specified in the BeamElev array is a binary fixed-point value with 18 fractional bits.

[0373] Beam offset (beam_voffset_init, beam_voffset_diff[i]): Specifies the modification along the V axis of the i-th beam position relative to GeomAngularOrigin[2].

[0374] Beam samples (beam_samples_per_turn_init_minus1, beam_samples_per_turn_diff[i]): Indicates the number of samples generated by the ith beam of the rotation sensing system located at the origin used for angle coding mode processing.

[0375] Octree Planar Buffer Enabled(occtree_planar_buffer_disabled): If equal to 1, indicates that the buffer is not used to track the closest node in the process of coding the planar position in planar mode flag and planar mode. If occtree_planar_buffer_disabled is 0, it indicates that the buffer is used to track the closest node. If not present, occtree_planar_buffer_disabled is inferred to be occtree_planar_enabled.

[0376] Geometry Scaling Enabled (geom_scaling_enabled): Equal to 1 indicates that scaling is invoked on geometry positions during the geometry decoding process. geom_scaling_enabled equal to 0 indicates that no scaling is required on geometry positions. If not present, geom_scaling_enabled is inferred to be 0.

[0377] Geometry initial QP (geom_initial_qp): Indicates the initial geometric position QP.

[0378] Geometry QP multiplier (geom_qp_multiplier_log2) : It indicates the geometry scaling step size and the scale factor to apply to the geometry QP value before inducing translation. The value of geom_qp_multiplier_log2 is in the range 0..3. geom_qp_multiplier_log2 equal to x for x=0..3 indicates that (8 >> x) QP values ​​are specified every time the geometry scaling step size is increased by a factor of 2.

[0379] QP Period (ptree_qp_period_log2): Indicates the fundamental frequency for signaling prediction tree node QP offsets.

[0380] Octree Direct Node QP Offset (occtree_direct_node_qp_offset): Indicates the offset relative to sliceQp to use for scaling point positions coded by direct coding mode. If not present, the value of occtree_direct_node_qp_offset is inferred to be 0.

[0381] The GPS according to the embodiment may further include MVDCM configuration information. According to the MVDCM information (gps_MVDCM_enable), the GPS may further include point information (gps_MVDCM_points) and prediction mode information (gps_MVDCM_prediction_mode).

[0382] FIG. 24 shows PU tree structure information according to an embodiment.

[0383] The Struct PUtree() according to the embodiment is a structure included in geom_slice_data in the bitstream in Fig. 22. The Struct PUtree() transmits contents related to inter prediction.

[0384] It can be implemented and checked on the reference SW for inter prediction.

[0385] The PU structure according to the embodiment may further include direct flags (MVDCM_flags) information.

[0386] Direct coding mode enable (MVDCM_enable): A flag to indicate whether MVDCM is applicable or not, and is declared in the SPS for signaling on a content-by-content basis. For example, if it is true, it indicates that MVDCM_enable is applicable, and if it is false, it indicates that MVDCM_enable is not applicable.

[0387] Direct coding mode points (MVDCM_points): If MVDCM_enable is true, the number of points that are the basis for MVDCM applicability is sent to the signaling information. If MVDCM_enable is true in the SPS but MVDCM_points does not exist, the corresponding information is signaled in GPS and geometry_slice_header.

[0388] GPS Direct Coding Mode Availability (gps_MVDCM_enable): A flag indicating whether MVDCM is applicable, which is declared by GPS for frame-by-frame signaling. For example, if this flag is True, MVDCM_enable is applicable, and if this flag is False, MVDCM_enable is not applicable.

[0389] If the SPS has a flag for whether MVDCM is applicable, the GPS can also transmit the relevant information as signaling information by gps_MVDCM_enable. If the flag is not in the SPS, the GPS may signal whether MVDCM is applicable for each geometry unit.

[0390] GPS direct coding mode points (gps_MVDCM_points): If MVDCM_enable is true, the number of points that are the basis for MVDCM applicability is also signaled. If MVDCM_enable is true in the SPS but MVDCM_points is not present, it is signaled by the GPS or geometry_slice_header.

[0391] GPS direct coding mode prediction mode (gps_MVDCM_prediction_mode): If the corresponding prediction unit is subject to MVDCM, the mode information used during prediction may be signaled differently for each frame. The same mode can be applied to all prediction units included in the same frame.

[0392] FIG. 25 shows prediction modes according to an embodiment.

[0393] FIG. 25 shows the prediction modes included in FIG.

[0394] The prediction modes according to the embodiment include, in order, no compensation (0000, FIG. 18) which inherits the search area point of the reference frame as it is, origin_closed (0001, FIG. 19) which uses the difference between the origin point and the closest vertex among the vertices of the cube or cuboid which indicates the search area and the prediction unit area as the motion vector, closest_vertex (0010, FIG. 20) which uses the vector with the smallest RDO among the vectors between 8 pairs of vertices in the search area and the prediction unit area as the motion vector, and Center_point_vector (0011, FIG. 21) which calculates a representative value in each of the search area and the prediction unit and uses the difference between the representative values ​​as the motion vector. These modes may be added or deleted as necessary if the conditions of MVDCM are satisfied.

[0395] gsh_MVDCM_enable: A flag to indicate whether MVDCM is applicable, which is declared in the geometry slice header for signaling on a slice-by-slice basis. True: MVDCM_enable is applicable, False: MVDCM_enable is not applicable. If the SPS or GPS has a flag for whether MVDCM is applicable, ghs_MVDCM_enable inherits that information and is signaled.

[0396] gsh_MVDCM_points: If gsh_MVDCM_enable is true, the number of points that are the basis for MVDCM applicability is also signaled. If MVDCM_enable of SPS is true or gps_MVDCM_enable of GPS is true but MVDCM_points or gps_MVDCM_points does not exist, it is signaled in geometry_slice_header.

[0397] gsh_MVDCM_prediction_mode: If the prediction unit is subject to MVDCM, the mode information used during prediction may be signaled differently for each slice. The same mode can be applied to all prediction units included in the same slice.

[0398] The prediction modes include, in order, no compensation, which inherits the search area point of the reference frame as it is, origin_closed, which uses the difference between the origin point and the closest vertex among the vertices of the cube or cuboid indicating the search area and the prediction unit area as the motion vector, closest_vertex, which uses the vector with the smallest RDO among the vectors between 8 pairs of vertices in the search area and the prediction unit area as the motion vector, and Center_point_vector, which calculates a representative value in each of the search area and the prediction unit and uses the difference between the representative values ​​as the motion vector. These modes may be added or deleted as necessary if the conditions of MVDCM are met.

[0399] Flags (popul_flags): Flags indicating whether points exist in the PU.

[0400] Split flags (split_flags): A flag indicating whether to split the corresponding PU into smaller units.

[0401] Motion Vectors (MVs): Indicates the motion vectors to be applied to the PU.

[0402] Flag (isWorld): A flag indicating whether to reference the global motion compensated point cloud.

[0403] Flag (MVDCM_flags): MVDCM_flags may be added to indicate whether MVDCM is applied to the corresponding PU. If MVDCM_flags is true, it indicates that the PU is applied with MVDCM, and if it is false, it indicates that the PU is not applied with MVDCM.

[0404] FIG. 26 illustrates a method for transmitting point cloud data according to an embodiment.

[0405] In the point cloud data transmission method / apparatus according to the embodiment, the transmitting device 10000 of FIG. 1, the point cloud video encoder 10002, the transmitter 10003, the capture-encode-transmit 20000-20001-20002 of FIG. 2, the encoder of FIG. 4, the transmitting device of FIG. 12, the device of FIG. 14, the processor (motion vector classifier) ​​of FIG. 15, etc. can execute the flowchart shown in FIG. 26.

[0406] The structure of the sending device according to the embodiment shows the structure of the point cloud encoder according to the embodiment. The point cloud encoder described in the general section of the point cloud compression process is specifically represented.

[0407] The transmitter first receives point cloud data, separates it into point geometry and attribute values, and performs coordinate transformation into a codeable form. It refines the data by quantization and voxelization using the transformed coordinate values, and performs global motion estimation and compensation.

[0408] After global motion estimation is completed, the prediction unit, which is the local motion vector estimation unit, and the area of ​​the search area are determined, and the MVDCM_enable information, which is a flag defined in SPS, is checked. If it is true, the number of points is counted in each area of ​​the PU and the search area. If the number of points in each area is less than MVDCM_point, motion vector estimation is not performed or another motion vector is extracted and a flag indicating that the corresponding PU is MVDCM is sent together. In order to select a motion vector for a PU that is MVDCM without motion vector estimation, a motion vector is extracted based on the position information of the search area and the PU. The extracted motion vector is applied to perform intra prediction with nodes that are not inter predicted, and when geometry coding for all positions / PUs / nodes included in one frame is completed, attribute coding is performed after reconstruction and geometry and attribute bitstreams are sent.

[0409] 2600, a transmission method according to an embodiment acquires, quantizes, and voxelizes point cloud data.

[0410] 2601, a transmission method according to an embodiment applies global motion estimation and compensation to the quantized and voxelized point cloud data. The point cloud data is globally estimated and compensated.

[0411] 2602, in the embodiment of the transmission method, the point cloud data is locally estimated and compensated, and a prediction unit of the current frame corresponding to the local region and a search region of the reference frame are determined.

[0412] 2603, the transmission method according to the embodiment, when the direct coding mode is activated, counts the number of points in the area where local estimation / compensation is performed, for example, counts the number of points included in the search area, and counts the number of points included in the prediction unit.

[0413] In 2604, the transmission method according to the embodiment determines whether the number of points included in each of the prediction unit and the search area is less than the number of points in the direct coding mode, and derives a motion vector if the number is equal to or less than a reference value.

[0414] 2605, in the embodiment, the transmission method performs motion vector compensation on the prediction unit using a direct coding mode based on the generated motion vector.

[0415] 2606, the transmission method according to the embodiment performs motion vector estimation when the direct coding mode is deactivated, and performs motion vector estimation when the direct coding mode is activated but the number of points is greater than a reference value, estimates a motion vector, and performs motion vector compensation based on the estimated motion vector to encode the motion vector.

[0416] When the number of points is small, the method according to 2603 to 2605 is effective in quickly and accurately.

[0417] After motion compensation of intra prediction, the transmission method according to the embodiment performs inter prediction.

[0418] The transmission method according to the embodiment recovers the encoded geometry and performs the feature coding, which is performed by the intraframe method.

[0419] The transmission method according to the embodiment generates a bitstream including the encoded geometry / characteristics.The transmission method according to the embodiment generates a bitstream including parameters related to the encoding (see FIG. 22).

[0420] In the embodiment, a different processing method can be applied under certain conditions, rather than a general geometry coding or feature coding method. In particular, when the correlation between adjacent nodes is very low compared to a method for intra prediction, a specific intra coding prediction may be performed. However, the embodiment shows a method of omitting motion vector prediction or applying a different method when the number of points included in a prediction unit in inter prediction is very small. That is, it is possible to provide an effect of efficient compression / reconstruction between multiple frames.

[0421] In addition, when performing inter-frame prediction on a PU basis, motion vector prediction can be performed, but unlike a method of predicting motion vectors in common without considering the state of the PU, the embodiment has the effect of adaptively providing motion vector prediction for each mode according to the number of points included in the PU. When the number of points is small, an additional mode is required because delay may increase depending on the search pattern, etc.

[0422] FIG. 27 illustrates a method for receiving point cloud data according to an embodiment.

[0423] In the point cloud data receiving method / apparatus according to the embodiment, the receiving device 10004, receiver 10005, point cloud video decoder 10006 of FIG. 1, the transmit-decode-render 20002-20003-20004 of FIG. 2, the decoders of FIGS. 10 and 11, the receiving device of FIG. 13, the device of FIG. 14, the processor (motion vector classifier) ​​of FIG. 15, etc. can execute the flowchart shown in FIG. 27.

[0424] The structure of the receiving device according to the embodiment shows the structure of the point cloud decoder according to the embodiment. The point cloud decoder described in the general point cloud compression process is specifically expressed as follows.

[0425] The receiver performs entropy decoding, inverse quantization, and inverse transformation of the geometry and characteristic bitstream transmitted from the transmitter, and performs global motion estimation if global motion compensation is possible for each slice / frame, defines a PU and a search area, and checks whether the MVDCM_flag of the corresponding PU is true if the flag MVDCM_enable transmitted from the SPS is true. If true, the receiver searches for the motion vector of the PU, PU_tree_MVs, in the search area and the position information of the PU, or decodes and compensates for the motion vector transmitted from the encoder, and updates the point cloud, or checks PU_tree_split_flags to see if the PU corresponds to a split, and if false, decodes PU_tree_MVs, and updates the point cloud if the compensated point is included in the PU range after compensation. When the geometry restoration is completed, the receiver inversely transforms the color information to include attribute information at the corresponding position, and delivers the reconstructed point cloud contents to the renderer. The structure of the receiving device according to the following embodiment shows the structure of a point cloud decoder according to the embodiment. The point cloud decoder described in the general point cloud compression process is specifically expressed as follows.

[0426] Each receiving method according to the embodiment follows the reverse process of the corresponding transmitting method.

[0427] 2700, a receiving method according to an embodiment receives a bitstream including encoded point cloud data and parameters.

[0428] 2701, a receiving method according to an embodiment, decodes point cloud data based on an entropy scheme.

[0429] 2702. The receiving method according to the embodiment is the reverse process of the transmitting process, and involves inverse transformation of the coordinate system.

[0430] 2703, a receiving method according to an embodiment performs global motion compensation.

[0431] 2704, the receiving method according to the embodiment performs local motion compensation. For local motion compensation, a prediction unit of a current frame and a search area of ​​a reference frame are determined.

[0432] 2705, in the receiving method according to the embodiment, if the direct coding mode is activated and the direct coding mode flag for the prediction unit is true, then perform motion vector estimation for the direct coding mode.

[0433] 2706, the receiving method according to the embodiment performs motion compensation using the motion vector.

[0434] 2707, in the receiving method according to the embodiment, if the direct coding mode is deactivated, or the direct coding mode flag of the PU is false and the PU tree split flag is false, decodes the PU motion vector instead of the direct coding motion vector.

[0435] The receiving method according to the embodiment updates the point cloud data if the node range belongs to the compensated point cloud region, and restores the point cloud data. Decode the feature data.

[0436] In the receiving method according to the embodiment, if the mode is MVDCM and there is a motion vector (MV) transmitted from the encoder, it is applied as is after decoding, and if there is no MV, it is predicted by the decoder and applied.

[0437] FIG. 28 illustrates a method for transmitting point cloud data according to an embodiment.

[0438] S2800, a method for transmitting point cloud data according to an embodiment, includes encoding the point cloud data.

[0439] Encoding operations according to the embodiment include the transmitting device 10000 of FIG. 1, the point cloud video encoder 10002, the encoding of FIG. 2, the encoder of FIG. 4, the transmitting device of FIG. 12, the XR device 1430 of FIG. 14, motion compensation (inter prediction) of FIG. 15, the bitstream generation of FIG. 22, and the transmitting operation of FIG. 26.

[0440] S2801, the point cloud data transmitting method according to the embodiment, further includes transmitting a bitstream including the point cloud data.

[0441] Transmission operations according to the embodiment include the transmitter 10003 of FIG. 1, the transmission of FIG. 2, the geometry / characteristic bitstream transmission of FIG. 4, the bitstream transmission of FIG. 12, the transmission after inter / intra prediction of FIG. 15, the bitstream transmission of FIG. 22, the encoded bitstream transmission of FIG. 26, etc.

[0442] FIG. 29 illustrates a method for receiving point cloud data according to an embodiment.

[0443] S2900, a method for receiving point cloud data according to an embodiment, includes receiving a bitstream including point cloud data.

[0444] The receiving operation according to the embodiment includes the receiving device 10004 in FIG. 1, the receiver 10005, the receiving in FIG. 2, the bit stream receiving in FIG. 10 and FIG. 11, and the bit stream receiving in FIG.

[0445] S2901, the point cloud data receiving method according to the embodiment, further includes a step of decoding the point cloud data.

[0446] Decoding operations according to the embodiment include the point cloud video decoder 10006 of FIG. 1, the decoder 20003 of FIG. 2, the decoders of FIGS. 10 and 11, the geometry / feature decoding of FIG. 13, the motion compensated prediction of FIG. 15, the parameter-based bitstream decoding of FIG. 22, and the receiving operation of FIG. 27.

[0447] According to FIG. 1, a method for transmitting point cloud data includes the steps of: encoding point cloud data; and transmitting a bitstream including the point cloud data.

[0448] According to FIG. 15, for motion compensation in direct coding mode (MVDCM), the step of encoding point cloud data encodes point cloud data contained in a first frame based on point cloud data contained in a second frame.

[0449] The first frame is a current frame that includes a point to be currently encoded, and the second frame is a reference frame that is referenced to generate prediction data for a point in the first frame. The reference frame is a frame that has been compressed / reconstructed before the current frame. The reference frame is a frame that will be compressed / reconstructed after the current frame.

[0450] 16 and 17, for motion compensation in direct coding mode (MVDCM), the embodiment counts the number of points and determines the mode based on the number information. For example, the steps of generating a prediction unit for a first frame, generating a search area for a second frame, and encoding point cloud data include encoding the prediction unit based on one or more number of points included in at least one of the prediction unit and the search area.

[0451] 18, in relation to motion compensation in direct coding mode (MVDCM), a search area is inherited and points outside the area are excluded. Based on one or more points included in a prediction unit, the points included in the search area are coded, and if the points included in the search area are outside the range of the prediction unit, the points are excluded.

[0452] 19, in relation to the motion compensation by direct coding mode (MVDCM), MV is the bottom, left, and front of the region (box). For example, a motion vector is generated based on the points located at the bottom, left, and front of the search region and the points located at the bottom, left, and front of the prediction unit.

[0453] 20, in relation to motion compensation in direct coding mode (MVDCM), a specific MV is selected from eight candidates of MVs based on the RDO. For example, a motion vector is generated based on the vertex points of the search area and the vertex points of the prediction unit.

[0454] 21, in relation to motion compensation by direct coding mode (MVDCM), MV is generated by a representative value. For example, a motion vector is generated based on at least one of the average, maximum, minimum, and median of points included in a search region and at least one of the average, maximum, minimum, and median of points included in a prediction unit.

[0455] The transmission method according to the embodiment is performed by a transmitting device, an encoder, a motion estimator, etc.

[0456] The method for receiving point cloud data according to the embodiment corresponds to the transmitting method or corresponds to the reverse process. For example, the method for receiving point cloud data includes the steps of receiving a bitstream including point cloud data; and decoding the point cloud data.

[0457] The step of decoding the point cloud data includes decoding the point cloud data included in the first frame based on the point cloud data included in the second frame.

[0458] Additionally, the steps of generating a prediction unit for the first frame, generating a search area for the second frame, and decoding the point cloud data include decoding the prediction unit based on one or more number of points included in at least one of the prediction unit and the search area.

[0459] Decoding according to the embodiment refers to the process of recovering points (geometry / characteristics) by inter-frame prediction.

[0460] Based on the number of one or more points included in the prediction unit according to the embodiment, the points included in the search area are decoded, and if the points included in the search area are outside the range of the prediction unit, the points are excluded.

[0461] A motion vector is generated based on points located at the bottom, left and front of the search area and points located at the bottom, left and front of the prediction unit, or the points are restored using information about the motion vectors included in the bitstream.

[0462] Based on the vertex points of the search area and the vertex points of the prediction unit, a motion vector is generated or the points are reconstructed using information about the motion vectors contained in the bitstream.

[0463] Thus, the method / apparatus according to the embodiment can use various modes according to the number of points included in a PU, which is a prediction unit, when performing inter-frame prediction of point cloud content. For example, when a PU includes a very small number of points, a motion vector estimation method that requires many search processes is not applied, but a motion vector is predicted based on the relationship between the search area and the PU, and related signaling information is generated and transmitted. The encoder can reduce the encoding time by early terminating according to the state of the PU and the search area, and the decoder can reduce the decoding time because it does not need to check whether the decoded motion vector is included within the PU range after applying it.

[0464] The embodiments are described in terms of methods and / or apparatus, and method descriptions and apparatus descriptions may be applied in a complementary manner.

[0465] For convenience of explanation, the drawings are described separately, but it is also possible to design a new embodiment by combining the embodiments described in each drawing. In addition, it is also within the scope of the embodiment to design a computer readable recording medium in which a program for executing the previously described embodiment is recorded, according to the needs of a person skilled in the art. As described above, the apparatus and method according to the embodiment are not limited to the configuration and method of the described embodiment, and the embodiment can be configured by selectively combining all or a part of each embodiment so that it can be modified in various ways. Although the preferred embodiment has been shown and described, the embodiment is not limited to the specific embodiment described above, and various modifications can be made by a person having ordinary skill in the art to which the invention belongs without departing from the gist of the embodiment claimed in the claims, and such modifications should not be individually understood from the technical ideas and prospects of the embodiment.

[0466] Various components of the apparatus according to the embodiment may be implemented by hardware, software, firmware, or a combination thereof. Various components of the embodiment may be implemented by one chip, for example, one hardware circuit. In the embodiment, the components according to the embodiment may be implemented by individual chips. In the embodiment, any of the components of the apparatus according to the embodiment may be implemented by one or more processors capable of executing one or more programs, and the one or more programs may include instructions for performing or causing any one or more of the operations / methods according to the embodiment to be performed. Executable instructions for performing the method / operation of the apparatus according to the embodiment may be stored in a non-transitory CRM or other computer program product configured to be executed by one or more processors, or may be stored in a transitory CRM or other computer program product configured to be executed by one or more processors. In addition, the memory according to the embodiment is used as a concept including not only volatile memory (e.g., RAM, etc.) but also non-volatile memory, flash memory, PROM, etc. It may also be implemented in the form of a carrier wave, such as transmission over the Internet. In addition, the recording medium read by the processor may be distributed to computer systems connected by a network, and the code read by the processor may be stored and executed in a distributed manner.

[0467] In this specification, " / " and "," are interpreted as "and / or." For example, "A / B" is interpreted as "A and / or B," and "A, B" is interpreted as "A and / or B." Furthermore, "A / B / C" means "any of A, B, and / or C." Also, "A, B, C" means "any of A, B, and / or C." Furthermore, in this document, "or" is interpreted as "and / or." For example, "A or B" means 1) only "A," 2) only "B," or 3) "A and B." In other words, in this specification, "or" means "additionally or alternatively."

[0468] Terms such as first and second are used to describe various components of the embodiments. However, the various components according to the embodiments should not be limited in interpretation by the above terms. Such terms are merely used to distinguish one component from another. For example, a first user input signal can be referred to as a second user input signal. Similarly, a second user input signal can be referred to as a first user input signal. Use of such terms does not depart from the scope of various embodiments. Although the first user input signal and the second user input signal are both user input signals, they do not mean the same user input signal unless the context clearly indicates otherwise.

[0469] The terms used to describe the embodiments are used to describe specific embodiments and are not intended to limit the embodiments. As used in the description of the embodiments and the claims, the singular includes the plural unless the context clearly dictates otherwise. The term "and / or" is used to include all possible combinations between terms. "Comprises" describes the presence of a feature, number, step, element, and / or component, and does not mean that additional features, numbers, steps, elements, and / or components are not included. Conditional expressions such as "if" and "when" used to describe the embodiments are only intended to be interpreted as selective and limiting. It is intended that when a particular condition is met, a related action is performed in response to a particular condition, or a related definition is interpreted.

[0470] Moreover, the operations according to the embodiments described herein are performed by a transceiver device including a memory and / or a processor according to the embodiments. The memory stores a program for processing / controlling the operations according to the embodiments, and the processor controls the various operations described herein. The processor is also referred to as a controller, etc. The operations of the embodiments are performed by firmware, software, and / or a combination thereof, which are stored in the processor or stored in the memory.

[0471] Meanwhile, the operations according to the above-described embodiments are performed by a transmitting device and / or a receiving device according to the embodiments. The transmitting / receiving device includes a transceiver for transmitting and receiving media data, a memory for storing instructions (program code, algorithms, flowcharts and / or data) for a process according to the embodiment, and a processor for controlling the operation of the transmitting / receiving device.

[0472] The processor may be referred to as a controller, and may be, for example, hardware, software, and / or a combination thereof. The operations according to the above-described embodiments are performed by the processor. The processor may also be embodied as an encoder / decoder for the operations of the above-described embodiments.

[0473] As mentioned above, the relevant content will be described with respect to the best mode for carrying out the embodiment. [Industrial Applicability]

[0474] As described above, the embodiments may be applied in whole or in part to point cloud data transmitting and receiving devices and systems.

[0475] Those skilled in the art can make various changes and modifications to the embodiments within the scope of the embodiments.

[0476] The embodiments include modifications / variations that are within the scope of the claims and the equivalents thereof.

Claims

1. 1. A method for transmitting point cloud data, the method comprising: encoding point cloud data in a frame based on a reference frame for the frame, The geometry data and the feature data of the point cloud data are each encoded based on inter prediction; applying motion compensation to the point cloud data based on a threshold; transmitting a bitstream including the point cloud data; The method, wherein the bitstream includes information related to the threshold.

2. A prediction unit is generated for a first frame; A search region is generated for the second frame; 2. The method of claim 1, wherein encoding the point cloud data comprises encoding the prediction unit based on a number of one or more points included in at least one of the prediction unit and the search area.

3. The points included in the search area are encoded based on the number of one or more points included in the prediction unit; The method of claim 2 , wherein points included in the search area are excluded based on the points being outside the range of the prediction unit.

4. The method of claim 2 , wherein a motion vector is generated based on points located at the bottom, left and front of the search area and points located at the bottom, left and front of the prediction unit.

5. The method of claim 2 , wherein motion vectors are generated based on points on vertices of the search area and points on vertices of the prediction unit.

6. 3. The method of claim 2, wherein a motion vector is generated based on at least one of an average, a maximum, a minimum, a median of points included in the search area and at least one of an average, a maximum, a minimum, a median of points included in the prediction unit.

7. 1. An apparatus configured to transmit point cloud data, the apparatus comprising:

1. An encoder configured to encode point cloud data in a frame based on a reference frame for the frame, comprising: The geometry data and the feature data of the point cloud data are each encoded based on inter prediction; an encoder, wherein motion compensation is applied to the point cloud data based on a threshold; a transmitter configured to transmit a bitstream including the point cloud data; The bitstream includes information related to the threshold.

8. 1. A method of receiving point cloud data, the method comprising: receiving a bitstream including the point cloud data; and decoding the point cloud data in the frame based on a reference frame for the frame; The geometry data and the feature data of the point cloud data are respectively decoded based on inter prediction; Motion compensation is applied to the point cloud data based on a threshold; The method, wherein the bitstream includes information related to the threshold.

9. A prediction unit is generated for a first frame; A search region is generated for the second frame; 9. The method of claim 8, wherein decoding the point cloud data comprises decoding the prediction unit based on a number of one or more points included in at least one of the prediction unit and the search area.

10. The points included in the search area are decoded based on the number of one or more points included in the prediction unit; The method of claim 9 , wherein points included in the search area are excluded based on the points being outside the range of the prediction unit.

11. A motion vector is generated based on a point located at the bottom, left and front of the search area and a point located at the bottom, left and front of the prediction unit; or The method of claim 9 , wherein the bitstream includes information about the motion vectors.

12. A motion vector is generated based on the points on the vertices of the search area and the points on the vertices of the prediction unit; or The method of claim 9 , wherein the bitstream includes information about the motion vectors.

13. 1. An apparatus configured to receive point cloud data, the apparatus comprising: a receiver configured to receive a bitstream including the point cloud data; a decoder configured to decode the point cloud data in a frame based on a reference frame for the frame; The geometry data and the feature data of the point cloud data are respectively decoded based on inter prediction; Motion compensation is applied to the point cloud data based on a threshold; The bitstream includes information related to the threshold.

Citation Information

Patent Citations

  • Motion-compensated compression of dynamic voxelized point clouds

    US20170347120A1

  • Techniques and apparatus for interframe point-cloud attribute coding

    US20200304823A1

  • Inter prediction coding for geometry point cloud compression

    US20220207780A1

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

    WO2019235366A1

  • Method and apparatus for interframe point cloud attribute coding

    WO2020197966A1