Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
By encoding and compressing point cloud data, and using data structures such as octree and prediction trees, the problem of low point cloud data processing and transmission efficiency in the existing technology is solved, and efficient point cloud data transmission and decoding is achieved.
Patent Information
- Application Number
- CN202380061094.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-22
- Filing Date
- 2023-08-22
- Publication Date
- 2025-04-11
AI Technical Summary
The prior art is difficult to efficiently process and transmit large amounts of point cloud data, resulting in long wait times and high encoding/decoding complexity.
By encoding the point cloud data and converting it into a bitstream for transmission and reception, data structures such as octree and prediction trees are compressed and decoded.
It realizes efficient processing and transmission of point cloud data, reduces waiting time, and reduces the complexity of encoding and decoding, providing high-quality point cloud services.
Smart Images

Figure CN119817104A_ABST
Abstract
Description
Technical Field
[0001] Embodiments relate to a method and apparatus for processing point cloud content. Background Art
[0002] Point cloud content is content represented by a point cloud, which is a collection of points belonging to a coordinate system representing a three-dimensional space. Point cloud content can express media configured in three dimensions and is used to provide various services such as virtual reality (VR), augmented reality (AR), mixed reality (MR), and self-driving services. However, tens of thousands to hundreds of thousands of point data are required to represent point cloud content. Therefore, a method of efficiently processing a large amount of point data is needed. Summary of the invention
[0003] Technical issues
[0004] The embodiment provides an apparatus and method for efficiently processing point cloud data. The embodiment provides a method and apparatus for processing point cloud data to solve waiting time and encoding / decoding complexity.
[0005] The technical scope of the embodiments is not limited to the above-mentioned technical objectives, and can be extended to other technical objectives that can be inferred by those skilled in the art based on the entire content disclosed in this document.
[0006] Technical Solution
[0007] In one aspect of the present disclosure, a method for sending point cloud data may include: encoding the point cloud data; and sending a bit stream containing the point cloud data. In another aspect of the present disclosure, a method for receiving point cloud data may include: receiving a bit stream containing the point cloud data; and decoding the point cloud data.
[0008] Beneficial Effects
[0009] The apparatus and method according to the embodiments can efficiently process point cloud data.
[0010] The apparatus and method according to the embodiments can provide high-quality point cloud services.
[0011] The device and method according to the embodiment may provide point cloud content for providing general services such as VR service and self-driving service. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The accompanying drawings are included to provide a further understanding of the present disclosure and are incorporated into and constitute a part of this application, illustrate embodiments of the present disclosure, and together with this description, are used to explain the principles of the present disclosure. In order to better understand the various embodiments described below, reference should be made to the following description of the embodiments in conjunction with the accompanying drawings. The same reference numerals will be used throughout the drawings to refer to the same or similar parts.
[0013] Figure 1 An exemplary point cloud content providing system according to an embodiment is shown;
[0014] Figure 2 is a block diagram illustrating a point cloud content providing operation according to an embodiment;
[0015] Figure 3 An exemplary point cloud encoder according to an embodiment is illustrated;
[0016] Figure 4 shows examples of octrees and occupancy codes according to an embodiment;
[0017] Figure 5 illustrates an example of point configuration in each LOD according to an embodiment;
[0018] Figure 6 illustrates an example of point configuration in each LOD according to an embodiment;
[0019] Figure 7 A point cloud decoder according to an embodiment is illustrated;
[0020] Figure 8 A transmitting device according to an embodiment is illustrated;
[0021] Fig. 9 A receiving device according to an embodiment is illustrated;
[0022] Fig.10 An exemplary structure that can be operated in conjunction with a point cloud data transmitting / receiving method / apparatus according to an embodiment is illustrated;
[0023] Fig.11 A quadratic residual transform method for an occupancy tree according to an embodiment is illustrated;
[0024] Fig.12 A point cloud data transmitting device according to an embodiment is illustrated;
[0025] Fig.13 A point cloud data receiving device according to an embodiment is illustrated;
[0026] Fig.14 A bitstream including point cloud data and parameters according to an embodiment is illustrated;
[0027] Fig.15 illustrates a sequence parameter set according to an embodiment;
[0028] Fig.16 illustrates a tile parameter set according to an embodiment;
[0029] Fig.17illustrates a geometry parameter set and an attribute parameter set according to an embodiment;
[0030] Fig.18 illustrates a geometry data unit and a geometry data unit header according to an embodiment;
[0031] Fig.19 illustrates an occupancy tree according to an embodiment;
[0032] Fig. 20 illustrates a prediction tree according to an embodiment;
[0033] Fig.21 illustrates an attribute data unit and an attribute data unit header according to an embodiment;
[0034] Fig. 22 illustrates attribute coefficients according to an embodiment;
[0035] Fig.23 A method of transmitting point cloud data according to an embodiment is illustrated; and
[0036] Fig.24 A method of receiving point cloud data according to an embodiment is illustrated. DETAILED DESCRIPTION
[0037] Reference will now be made in detail to the preferred embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. The detailed description given below with reference to the accompanying drawings is intended to illustrate exemplary embodiments of the present disclosure, rather than to show the only embodiments that can be implemented according to the present disclosure. The following detailed description includes specific details in order to provide a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure can be practiced without these specific details.
[0038] Although most of the terms used in the present disclosure are selected from common terms widely used in the art, some terms are arbitrarily selected by the applicant and their meanings are explained in detail in the following description as needed. Therefore, the present disclosure should be understood based on the intended meanings of the terms rather than their simple names or meanings.
[0039] Figure 1 An exemplary point cloud content providing system according to an embodiment is shown.
[0040] Figure 1 The point cloud content providing system shown may include a transmitting device 10000 and a receiving device 10004. The transmitting device 10000 and the receiving device 10004 can transmit and receive point cloud data via wired or wireless communication.
[0041] According to an embodiment, the point cloud data sending device 10000 can obtain and process point cloud video (or point cloud content) and send it. According to an embodiment, the sending device 10000 may include a fixed station, a base transceiver system (BTS), a network, an artificial intelligence (AI) device and / or system, a robot, an AR / VR / XR device and / or a server. According to an embodiment, the sending device 10000 may include a device configured to communicate with a base station and / or other wireless devices using a radio access technology (e.g., 5G New RAT (NR), Long Term Evolution (LTE)), a robot, a vehicle, an AR / VR / XR device, a portable device, a home appliance, an Internet of Things (IoT) device, and an AI device / server.
[0042] According to the implementation manner, the sending device 10000 includes a point cloud video acquirer 10001, a point cloud video encoder 10002 and / or a transmitter (or communication module) 10003.
[0043] The point cloud video acquirer 10001 according to the embodiment acquires the point cloud video through a processing process such as capture, synthesis or generation. The point cloud video is a point cloud content represented by a point cloud, which is a set of points located in a 3D space and can be referred to as point cloud video data, point cloud data, etc. The point cloud video according to the embodiment may include one or more frames. A frame represents a still image / picture. Therefore, the point cloud video may include a point cloud image / frame / picture and may be referred to as a point cloud image, frame or picture.
[0044] The point cloud video encoder 10002 according to the embodiment encodes the acquired point cloud video data. The point cloud video encoder 10002 may encode the point cloud video data based on point cloud compression coding. The point cloud compression coding according to the embodiment may include geometry-based point cloud compression (G-PCC) coding and / or video-based point cloud compression (V-PCC) coding or next generation coding. The point cloud compression coding according to the embodiment is not limited to the above-mentioned embodiment. The point cloud video encoder 10002 may output a bit stream containing the encoded point cloud video data. The bit stream may include not only the encoded point cloud video data, but also signaling information related to the encoding of the point cloud video data.
[0045] The transmitter 10003 according to the embodiment transmits a bitstream containing encoded point cloud video data. The bitstream according to the embodiment is encapsulated in a file or a fragment (e.g., a stream fragment) and is transmitted via various networks such as a broadcast network and / or a broadband network. Although not shown in the figure, the transmitting device 10000 may include a packager (or a package module) configured to perform a packaging operation. According to an embodiment, the packager may be included in the transmitter 10003. According to an embodiment, the file or fragment may be sent 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 communicate with the receiving device 10004 (or the receiver 10005) via a 4G, 5G, 6G or other network by wire / wireless communication. In addition, the transmitter may perform necessary data processing operations according to the network system (e.g., a 4G, 5G or 6G communication network system). The transmitting device 10000 may transmit the encapsulated data in an on-demand manner.
[0046] The receiving device 10004 according to an embodiment includes a receiver 10005, a point cloud video decoder 10006 and / or a renderer 10007. According to an embodiment, the receiving device 10004 may include a device configured to communicate with a base station and / or other wireless devices using a radio access technology (e.g., 5G New RAT (NR), Long Term Evolution (LTE)), a robot, a vehicle, an AR / VR / XR device, a portable device, a home appliance, an Internet of Things (IoT) device, and an AI device / server.
[0047] The receiver 10005 according to the embodiment receives a bitstream containing point cloud video data or a file / segment encapsulated with a bitstream from a network or a storage medium. The receiver 10005 may perform necessary data processing according to a network system (e.g., a communication network system of 4G, 5G, 6G, etc.). The receiver 10005 according to the embodiment may decapsulate the received file / segment and output a bitstream. According to the embodiment, the receiver 10005 may include a decapsulator (or decapsulation module) configured to perform a decapsulation operation. The decapsulator may be implemented as an element (or component) separated from the receiver 10005.
[0048] The point cloud video decoder 10006 decodes the bitstream containing the point cloud video data. The point cloud video decoder 10006 can decode the point cloud video data according to the method in which the point cloud video data is encoded (for example, in the reverse process of the operation of the point cloud video encoder 10002). Therefore, the point cloud video decoder 10006 can decode the point cloud video data by performing point cloud decompression encoding (the reverse process of point cloud compression). The point cloud decompression encoding includes G-PCC encoding.
[0049] The renderer 10007 renders the decoded point cloud video data. The renderer 10007 may output the point cloud content by rendering not only the point cloud video data but also the audio data. According to an embodiment, the renderer 10007 may include a display configured to display the point cloud content. According to an embodiment, the display may be implemented as a separate device or component rather than being included in the renderer 10007.
[0050] The arrow indicated by the dotted line in the figure represents the transmission path of the feedback information obtained by the receiving device 10004. Feedback information is information that reflects the interactivity with the user who consumes the point cloud content, and includes information about the user (e.g., head orientation information, viewport information, etc.). Specifically, when the point cloud content is content for a service that requires interaction with the user (e.g., self-driving service, etc.), the feedback information may be provided to the content sender (e.g., sending device 10000) and / or the service provider. Depending on the embodiment, the feedback information may be used in the receiving device 10004 and the sending device 10000, or may not be provided.
[0051] The head orientation information according to the embodiment is information about the user's head position, orientation, angle, movement, etc. The receiving device 10004 according to the embodiment may calculate the viewport information based on the head orientation information. The viewport information may be information about the area of the point cloud video that the user is watching. The viewpoint is the point through which the user watches the point cloud video, and may refer to the center point of the viewport area. That is, the viewport is an area centered on the viewpoint, and the size and shape of the area may be determined by the field of view (FOV). Therefore, in addition to the head orientation information, the receiving device 10004 may also extract the viewport information based on the vertical or horizontal FOV supported by the device. In addition, the receiving device 10004 performs gaze analysis, etc. to check the way the user consumes the point cloud, the area where the user gazes in the point cloud video, the gaze time, etc. According to the embodiment, the receiving device 10004 may send feedback information including the gaze analysis result to the sending device 10000. The feedback information according to the embodiment may be obtained during the rendering and / or display process. The feedback information according to the embodiment may be obtained by one or more sensors included in the receiving device 10004. According to an embodiment, the feedback information may be obtained by the renderer 10007 or a separate external element (or device, component, etc.). Figure 1The dotted line in represents the process of sending the feedback information obtained by the renderer 10007. The point cloud content providing system can process (encode / decode) the point cloud data based on the feedback information. Therefore, the point cloud video data decoder 10006 can perform a decoding operation based on the feedback information. The receiving device 10004 can send the feedback information to the sending device 10000. The sending device 10000 (or the point cloud video data encoder 10002) can perform an encoding operation based on the feedback information. Therefore, the point cloud content providing system can efficiently process necessary data (for example, point cloud data corresponding to the user's head position) based on the feedback information instead of processing (encoding / decoding) the entire point cloud data, and provide the point cloud content to the user.
[0052] According to an embodiment, the transmitting device 10000 may be referred to as an encoder, a transmitting device, a transmitter, etc., and the receiving device 10004 may be referred to as a decoder, a receiving device, a receiver, etc.
[0053] According to the implementation Figure 1 The point cloud data processed in the point cloud content providing system (through a series of processes of acquisition / encoding / transmission / decoding / rendering) may be referred to as point cloud content data or point cloud video data. According to an embodiment, point cloud content data may be used as a concept covering metadata or signaling information related to point cloud data.
[0054] Figure 1 The elements of the point cloud content providing system shown may be implemented by hardware, software, a processor and / or a combination thereof.
[0055] Figure 2 is a block diagram illustrating a point cloud content providing operation according to an embodiment.
[0056] Figure 2 The block diagram shows Figure 1 The operation of the point cloud content providing system described in . As described above, the point cloud content providing system can process point cloud data based on point cloud compression coding (e.g., G-PCC).
[0057] According to an embodiment, a point cloud content providing system (e.g., a point cloud sending device 10000 or a point cloud video acquirer 10001) can acquire a point cloud video (20000). The point cloud video is represented by a point cloud belonging to a coordinate system for expressing a 3D space. According to an embodiment, a point cloud video may include a Ply (Polygon file format or Stanford Triangle format) file. When a point cloud video has one or more frames, the acquired point cloud video may include one or more Ply files. A Ply file contains point cloud data such as point geometry and / or attributes. Geometry includes the position of a point. The position of each point may be represented by a parameter (e.g., the value of the X, Y, and Z axes) representing a three-dimensional coordinate system (e.g., a coordinate system consisting of X, Y, and Z axes). Attributes include attributes of the point (e.g., information about the texture, color (YCbCr or RGB), reflectivity r, transparency, etc. of each point). A point has one or more attributes. For example, a point may have a color attribute or two attributes, color and reflectivity. According to an embodiment, geometry may be referred to as position, geometry information, geometry data, position information, position data, etc., and attributes may be referred to as attributes, attribute information, attribute data, etc. The point cloud content providing system (e.g., the point cloud transmitting device 10000 or the point cloud video acquirer 10001) may obtain point cloud data from information related to a point cloud video acquisition process (e.g., depth information, color information, etc.).
[0058] According to an embodiment, a point cloud content providing system (e.g., a transmitting device 10000 or a point cloud video encoder 10002) may encode point cloud data (20001). The point cloud content providing system may encode point cloud data based on point cloud compression coding. As described above, point cloud data may include geometric information and attribute information about points. Therefore, the point cloud content providing system may perform geometric coding for encoding geometry and output a geometric bitstream. The point cloud content providing system may perform attribute coding for encoding attributes and output an attribute bitstream. According to an embodiment, the point cloud content providing system may perform attribute coding based on geometric coding. The geometric bitstream and the attribute bitstream according to the embodiment may be multiplexed and output as one bitstream. The bitstream according to the embodiment may also include signaling information related to geometric coding and attribute coding.
[0059] According to the embodiment, the point cloud content providing system (eg, the transmitting device 10000 or the transmitter 10003) may transmit the encoded point cloud data (20002). Figure 1As shown, the encoded point cloud data can be represented by a geometry bitstream and an attribute bitstream. In addition, the encoded point cloud data can be sent in the form of a bitstream together with signaling information related to the encoding of the point cloud data (e.g., signaling information related to geometry encoding and attribute encoding). The point cloud content providing system can encapsulate the bitstream carrying the encoded point cloud data and send it in the form of a file or a fragment.
[0060] The point cloud content providing system (eg, receiving device 10004 or receiver 10005) according to the embodiment may receive a bit stream containing encoded point cloud data. In addition, the point cloud content providing system (eg, receiving device 10004 or receiver 10005) may demultiplex the bit stream.
[0061] The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) may decode the encoded point cloud data (e.g., geometry bitstream, attribute bitstream) sent in the bitstream. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) may decode the point cloud video data based on the signaling information related to the encoding of the point cloud video data contained in the bitstream. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) may decode the geometry bitstream to reconstruct the position (geometry) of the point. The point cloud content providing system may reconstruct the attributes of the point by decoding the attribute bitstream based on the reconstructed geometry. The point cloud content providing system (e.g., the receiving device 10004 or the point cloud video decoder 10005) may reconstruct the point cloud video based on the position according to the reconstructed geometry and the decoded attributes.
[0062] According to an embodiment, a point cloud content providing system (e.g., receiving device 10004 or renderer 10007) may render decoded point cloud data (20004). The point cloud content providing system (e.g., receiving device 10004 or renderer 10007) may use various rendering methods to render the geometry and attributes decoded by the decoding process. Points in the point cloud content may be rendered as vertices with a specific thickness, cubes with a specific minimum size centered at the corresponding vertex position, or circles centered at the corresponding vertex position. All or part of the rendered point cloud content is provided to the user through a display (e.g., a VR / AR display, a general display, etc.).
[0063] The point cloud content providing system (e.g., receiving device 10004) according to the embodiment may obtain feedback information (20005). The point cloud content providing system may encode and / or decode the point cloud data based on the feedback information. Feedback Information and Operations of the Point Cloud Content Providing System According to the Embodiment and Reference Figure 1 The feedback information and operations described are the same, so their detailed description is omitted.
[0064] Figure 3 An exemplary point cloud encoder according to an implementation is illustrated.
[0065] Figure 3 Show Figure 1 An example of a point cloud video encoder 10002. The point cloud encoder reconstructs and encodes point cloud data (e.g., the location and / or attributes of the points) to adjust the quality of the point cloud content (e.g., lossless, lossy, or near-lossless) according to network conditions or applications. When the total size of the point cloud content is large (e.g., 60 Gbps of point cloud content given for 30 fps), the point cloud content providing system may not be able to stream the content in real time. Therefore, the point cloud content providing system may reconstruct the point cloud content based on the maximum target bit rate to provide the point cloud content according to the network environment, etc.
[0066] As reference Figure 1 and Figure 2 As described, the point cloud encoder can perform geometry encoding and attribute encoding. Geometry encoding is performed before attribute encoding.
[0067] According to an embodiment, the point cloud encoder includes a coordinate transformer (transforming coordinates) 30000, a quantizer (quantizing and removing points (voxelization)) 30001, an octree analyzer (analyzing octree) 30002 and a surface approximation analyzer (analyzing surface approximation) 30003, an arithmetic encoder (arithmetic coding) 30004, a geometry reconstructor (reconstructing geometry) 30005, a color transformer (transforming color) 30006, an attribute transformer (transforming attributes) 30007, a RAHT transformer (RAHT) 30008, an LOD generator (generating LOD) 30009, a lifting transformer (lifting) 30010, a coefficient quantizer (quantizing coefficients) 30011 and / or an arithmetic encoder (arithmetic coding) 30012.
[0068] The coordinate transformer 30000, the quantizer 30001, the octree analyzer 30002, the surface approximation analyzer 30003, the arithmetic encoder 30004 and the geometry reconstructor 30005 may perform geometry coding. The geometry coding according to the embodiment may include octree geometry coding, prediction tree geometry coding, direct coding, triplet geometry coding and entropy coding. Direct coding and triplet geometry coding are applied selectively or in combination. The geometry coding is not limited to the above examples.
[0069] As shown in the figure, the coordinate transformer 30000 according to the embodiment receives the position and transforms it into coordinates. For example, the position can be transformed into position information in a three-dimensional space (e.g., a three-dimensional space represented by an XYZ coordinate system). The position information in the three-dimensional space according to the embodiment can be referred to as geometric information.
[0070] The quantizer 30001 according to the embodiment quantizes the geometry. For example, the quantizer 30001 may quantize the points based on the minimum position value of all points (e.g., the minimum value on each of the X, Y, and Z axes). The quantizer 30001 performs a quantization operation: the difference between the minimum position value and the position value of each point is multiplied by a preset quantization scaling value, and then the nearest integer value is found by rounding the value obtained by the multiplication. Therefore, one or more points may have the same quantized position (or position value). The quantizer 30001 according to the embodiment performs voxelization based on the quantized position to reconstruct the quantized point. As in the case of a pixel (the smallest unit containing 2D image / video information), a point of a point cloud content (or 3D point cloud video) according to the embodiment may be included in one or more voxels. As a composite of volume and pixel, the term voxel refers to a 3D cubic space generated when a 3D space is divided into units (unit = 1.0) based on an axis representing the 3D space (e.g., X-axis, Y-axis, and Z-axis). The quantizer 30001 may match a point group in a 3D space with a voxel. According to an embodiment, a voxel may include only one point. According to an embodiment, a voxel may include one or more points. In order to represent a voxel as a point, the position of the center of the voxel may be set based on the position of one or more points included in the voxel. In this case, the properties of all positions included in a voxel may be combined and assigned to the voxel.
[0071] The octree analyzer 30002 according to the embodiment performs octree geometry encoding (or octree encoding) to present voxels in an octree structure. The octree structure represents points matched to voxels based on an octal tree structure.
[0072] The surface approximation analyzer 30003 according to an embodiment may analyze and approximate an octree. The octree analysis and approximation according to an embodiment is a process of analyzing a region including a plurality of points to efficiently provide an octree and voxelization.
[0073] The arithmetic encoder 30004 according to the embodiment performs entropy coding on the octree and / or the approximate octree. For example, the coding scheme includes arithmetic coding. As a result of the coding, a geometry bitstream is generated.
[0074] The color converter 30006, the attribute converter 30007, the RAHT converter 30008, the LOD generator 30009, the lifting converter 30010, the coefficient quantizer 30011 and / or the arithmetic encoder 30012 perform attribute encoding. As described above, a point may have one or more attributes. The attribute encoding according to the embodiment is also applied to the attributes of a point. However, when the attribute (e.g., color) includes one or more elements, the attribute encoding is applied independently to each element. The attribute encoding according to the embodiment includes color transform encoding, attribute transform encoding, regional adaptive hierarchical transform (RAHT) encoding, interpolation-based hierarchical nearest neighbor prediction (prediction transform) encoding, and interpolation-based hierarchical nearest neighbor prediction (lifting transform) encoding with an update / lifting step. Depending on the point cloud content, the above-mentioned RAHT encoding, prediction transform encoding, and lifting transform encoding may be selectively used, or a combination of one or more encoding schemes may be used. The attribute encoding according to the embodiment is not limited to the above examples.
[0075] The color converter 30006 according to an embodiment performs color conversion encoding to convert the color value (or texture) included in the attribute. For example, the color converter 30006 can convert the format of the color information (e.g., from RGB to YCbCr). Optionally, the operation of the color converter 30006 according to an embodiment can be applied according to the color value included in the attribute.
[0076] The geometry reconstructor 30005 according to an embodiment reconstructs (decompresses) an octree and / or an approximate octree. The geometry reconstructor 30005 reconstructs an octree / voxel based on the result of analyzing the point distribution. The reconstructed octree / voxel may be referred to as a reconstructed geometry (restored geometry).
[0077] The attribute transformer 30007 according to the embodiment performs attribute transformation to transform the attribute based on the reconstructed geometry and / or the position where the geometry encoding is not performed. As described above, since the attribute depends on the geometry, the attribute transformer 30007 can transform the attribute based on the reconstructed geometry information. For example, based on the position value of the point included in the voxel, the attribute transformer 30007 can transform the attribute of the point at the position. As described above, when the center position of the voxel is set based on the position of one or more points included in the voxel, the attribute transformer 30007 transforms the attribute of one or more points. When triplet geometry encoding is performed, the attribute transformer 30007 can transform the attribute based on the triplet geometry encoding.
[0078] The attribute converter 30007 can perform attribute conversion by calculating the average of the attributes or attribute values (e.g., the color or reflectivity of each point) of the neighboring points within a specific position / radius from the center position (or position value) of each voxel. The attribute converter 30007 can apply weights according to the distance from the center to each point when calculating the average. Therefore, each voxel has a position and a calculated attribute (or attribute value).
[0079] The attribute converter 30007 can search for neighboring points within a specific position / radius from the center position of each voxel based on a KD tree or a Morton code. The KD tree is a binary search tree and supports a data structure capable of managing points based on position, so that a nearest neighbor search (NNS) can be performed quickly. The Morton code is generated by presenting the coordinates (e.g., (x, y, z)) representing the 3D positions of all points as bit values and mixing the bits. For example, when the coordinates representing the point position are (5, 9, 1), the bit values of the coordinates are (0101, 1001, 0001). Mixing the bit values in the order of z, y, and x according to the bit index produces 010001000111. This value is represented as a decimal number 1095. That is, the Morton code value of the point with coordinates (5, 9, 1) is 1095. The attribute converter 30007 can sort the points based on the Morton code value and perform NNS through a depth-first traversal process. After the attribute transform operation, KD tree or Morton code is used when NNS is needed in another transform process for attribute encoding.
[0080] As shown, the transformed attributes are input to the RAHT transformer 30008 and / or the LOD generator 30009.
[0081] The RAHT transformer 30008 according to an embodiment performs RAHT encoding for predicting attribute information based on the reconstructed geometric information. For example, the RAHT transformer 30008 may predict attribute information of a higher-level node in the octree based on attribute information associated with a lower-level node in the octree.
[0082] The LOD generator 30009 according to an embodiment generates a level of detail (LOD) to perform predictive transform coding. The LOD according to an embodiment is the degree of detail of the point cloud content. As the LOD value decreases, the details of the point cloud content are degraded. As the LOD value increases, the details of the point cloud content are enhanced. Points can be classified by LOD.
[0083] The lifting transformer 30010 according to an embodiment performs lifting transform coding that transforms point cloud attributes based on weights. As described above, lifting transform coding can be optionally applied.
[0084] The coefficient quantizer 30011 according to the embodiment quantizes the attribute of the attribute encoding based on the coefficient.
[0085] The arithmetic encoder 30012 according to the embodiment encodes quantized properties based on arithmetic coding.
[0086] Although not shown in the figure, Figure 3 The elements of the point cloud encoder may be implemented by hardware, software, firmware, or a combination thereof including one or more processors or integrated circuits configured to communicate with one or more memories included in the point cloud providing device. The one or more processors may execute the above Figure 3 At least one of the operations and / or functions of the elements of the point cloud encoder. In addition, one or more processors may be operable or executed to perform Figure 3 A software program and / or set of instructions for the operation and / or functionality of the elements of the point cloud encoder. One or more memories according to an embodiment may include high-speed random access memory, or include non-volatile memory (e.g., one or more disk storage devices, flash memory devices, or other non-volatile solid-state memory devices).
[0087] Figure 4 Examples of octrees and occupancy codes according to embodiments are illustrated.
[0088] As reference Figures 1 to 3 As described, the point cloud content providing system (point cloud video encoder 10002) or the point cloud encoder (e.g., octree analyzer 30002) performs octree geometry encoding (or octree encoding) based on the octree structure to efficiently manage the area and / or position of voxels.
[0089] Figure 4 The upper part of FIG. 1 shows the octree structure. The 3D space of the point cloud content according to the embodiment is represented by the axes (eg, X-axis, Y-axis, and Z-axis) of the coordinate system. d ,2 d ,2 d ) to create an octree structure. Here, 2d can be set to the value of the smallest bounding box that constitutes all points around the point cloud content (or point cloud video). Here, d represents the depth of the octree. The value of d is determined in the following formula. In the following formula, (x int n ,y int n ,z int n ) represents the position (or position value) of the quantized point.
[0090] d=Ceil(Log2(Max(x_n^int,y_n^int,z_n^in,n=1,…,N)+1))
[0091] like Figure 4 As shown in the middle of the upper part of , the entire 3D space can be divided into eight spaces according to the partition. Each divided space is represented by a cube with six faces. Figure 4 As shown in the upper right part of , each of the eight spaces is divided again based on the axis of the coordinate system (e.g., X-axis, Y-axis, and Z-axis). Therefore, each space is divided into eight smaller spaces. The divided smaller spaces are also represented by cubes with six faces. This division scheme is applied until the leaf nodes of the octree become voxels.
[0092] Figure 4 The lower part shows the octree occupancy code. The occupancy code of the octree is generated to indicate whether each of the eight divided spaces generated by dividing one space contains at least one point. Therefore, a single occupancy code is represented by eight child nodes. Each child node represents the occupancy of the divided space, and the child node has a 1-bit value. Therefore, the occupancy code is represented as an 8-bit code. That is, when the space corresponding to the child node contains at least one point, the node is assigned a value of 1. When the space corresponding to the child node does not contain a point (the space is empty), the node is assigned a value of 0. Since Figure 4 The occupancy code shown is 00100001, thus indicating that the spaces corresponding to the third and eighth subnodes among the eight subnodes each contain at least one point. As shown in the figure, each of the third and eighth subnodes has eight subnodes, and the subnodes are represented by an 8-bit occupancy code. The accompanying drawings show that the occupancy code of the third subnode is 10000111, and the occupancy code of the eighth subnode is 01001111. The point cloud encoder (e.g., arithmetic encoder 30004) according to an embodiment may perform entropy encoding on the occupancy code. In order to increase compression efficiency, the point cloud encoder may perform intra-frame / inter-frame encoding on the occupancy code. The receiving device (e.g., receiving device 10004 or point cloud video decoder 10006) according to an embodiment reconstructs the occupancy code based on the occupancy code.
[0093] According to an embodiment, a point cloud encoder (e.g., Figure 4 The point cloud encoder or octree analyzer 30002) can perform voxelization and octree encoding to store point locations. However, points are not always evenly distributed in the 3D space, so there may be specific areas where fewer points exist. Therefore, performing voxelization on the entire 3D space is inefficient. For example, when a specific area contains few points, voxelization does not need to be performed in the specific area.
[0094] Therefore, for the above-mentioned specific area (or nodes other than the leaf nodes of the octree), the point cloud encoder according to the embodiment may skip voxelization and perform direct encoding to directly encode the point positions included in the specific area. The coordinates of the directly encoded points according to the embodiment are called direct coding mode (DCM). The point cloud encoder according to the embodiment may also perform triplet geometry encoding based on the surface model, which is to reconstruct the point positions in the specific area (or node) based on voxels. Triplet geometry encoding is a geometry encoding that represents an object as a series of triangular meshes. Therefore, the point cloud decoder can generate a point cloud from the mesh surface. Direct encoding and triplet geometry encoding according to the embodiment can be performed selectively. In addition, direct encoding and triplet geometry encoding according to the embodiment can be performed in combination with octree geometry encoding (or octree encoding).
[0095] In order to perform direct encoding, the option of using direct mode to apply direct encoding should be enabled. The node to which direct encoding is to be applied is not a leaf node, and there should be points less than a threshold value within a specific node. In addition, the total number of points to which direct encoding is to be applied should not exceed a preset threshold. When the above conditions are met, the point cloud encoder (or arithmetic encoder 30004) according to the embodiment can perform entropy encoding on the point position (or position value).
[0096] A point cloud encoder (e.g., surface approximation analyzer 30003) according to an embodiment may determine a specific level of the octree (a level less than the depth d of the octree), and may use a surface model starting from this level to perform triplet geometry encoding to reconstruct point positions in the node area based on voxels (triplet mode). A point cloud encoder according to an embodiment may specify a level to which triplet geometry encoding is to be applied. For example, when a specific level is equal to the depth of the octree, the point cloud encoder does not operate in triplet mode. In other words, a point cloud encoder according to an embodiment may operate in triplet mode only when the specified level is less than the depth value of the octree. A 3D cubic area of a node at a specified level according to an embodiment is referred to as a block. A block may include one or more voxels. A block or voxel may correspond to a block. Geometry is represented as a surface within each block. A surface according to an embodiment may intersect each edge of a block at most once.
[0097] A block has 12 edges, so there are at least 12 intersections in a block. Each intersection is called a vertex. When there is at least one occupied voxel adjacent to the edge among all blocks sharing the edge, the vertex existing along the edge is detected. An occupied voxel according to an embodiment refers to a voxel containing a point. The vertex position detected along the edge is the average position of the edge of all voxels adjacent to the edge among all blocks along the shared edge.
[0098] Once the vertex is detected, the point cloud encoder according to the embodiment can perform entropy encoding on the start point (x, y, z) of the edge, the direction vector (Δx, Δy, Δz) of the edge, and the vertex position value (relative position value within the edge). When triplet geometry encoding is applied, the point cloud encoder according to the embodiment (e.g., geometry reconstructor 30005) can generate restored geometry (reconstructed geometry) by performing triangle reconstruction, upsampling, and voxelization processes.
[0099] The vertices located at the edges of the block determine the surface passing through the block. The surface according to an embodiment is a non-planar polygon. In the triangle reconstruction process, the surface represented by the triangle is reconstructed based on the starting point of the edge, the direction vector of the edge and the position value of the vertex. The triangle reconstruction process is performed by i) calculating the centroid value of each vertex, ii) subtracting the center value from each vertex value, and iii) estimating the sum of the squares of the values obtained by subtraction.
[0100] ① ② ③
[0101] Estimate the minimum value of the sum, and perform the projection process according to the axis with the minimum value. For example, when the element x is the smallest, each vertex is projected on the x-axis relative to the center of the block and projected on the (y,z) plane. When the value obtained by the projection on the (y,z) plane is (ai,bi), the value of θ is estimated by atan2(bi,ai), and the vertices are sorted based on the value of θ. The following table illustrates the vertex combination for creating triangles according to the number of vertices. The vertices are sorted from 1 to n. The following table shows that for four vertices, two triangles can be constructed according to the vertex combination. The first triangle can be composed of vertices 1, 2, and 3 among the sorted vertices, and the second triangle can be composed of vertices 3, 4, and 1 among the sorted vertices.
[0102] Table 2-1. Triangles formed from vertices ordered 1,…,n
[0103] n triangle
[0104] 3(1,2,3)
[0105] 4(1,2,3),(3,4,1)
[0106] 5(1,2,3),(3,4,5),(5,1,3)
[0107] 6(1,2,3),(3,4,5),(5,6,1),(1,3,5)
[0108] 7(1,2,3),(3,4,5),(5,6,7),(7,1,3),(3,5,7)
[0109] 8(1,2,3),(3,4,5),(5,6,7),(7,8,1),(1,3,5),(5,7,1)
[0110] 9(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,1,3),(3,5,7),(7,9,3)
[0111] 10(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,1),(1,3,5),(5,7,9),(9,1,5)
[0112] 11(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,11),(11,1,3),(3,5,7),(7,9,11),(11,3,7)
[0113] 12(1,2,3),(3,4,5),(5,6,7),(7,8,9),(9,10,11),(11,12,1),(1,3,5),(5,7,9),(9,11,1),(1,5,9)
[0114] An upsampling process is performed to add points in the middle along the edges of the triangle, and voxelization is performed. The added points are generated based on the upsampling factor and the width of the block. The added points are called refined vertices. The point cloud encoder according to an embodiment may voxelize the refined vertices. In addition, the point cloud encoder may perform attribute encoding based on the voxelized position (or position value).
[0115] Figure 5 An example of point configuration in each LOD according to an embodiment is illustrated.
[0116] As reference Figures 1 to 4 As described, the encoded geometry is reconstructed (decompressed) before performing attribute encoding. When direct encoding is applied, the geometry reconstruction operation may include changing the placement of the directly encoded points (e.g., placing the directly encoded points in front of the point cloud data). When triplet geometry encoding is applied, the geometry reconstruction process is performed by triangle reconstruction, upsampling, and voxelization. Since the attributes depend on the geometry, attribute encoding is performed based on the reconstructed geometry.
[0117] The point cloud encoder (e.g., LOD generator 30009) can classify (or reorganize) the points by LOD. The figure shows the point cloud content corresponding to the LOD. The leftmost screen in the figure shows the original point cloud content. The second screen from the left in the figure shows the distribution of points in the lowest LOD, and the rightmost screen in the figure shows the distribution of points in the highest LOD. That is, the points in the lowest LOD are sparsely distributed, and the points in the highest LOD are densely distributed. That is, as the LOD increases in the direction indicated by the arrow indicated at the bottom of the figure, the space (or distance) between the points becomes narrower.
[0118] Figure 6 An example of point configuration for each LOD according to an embodiment is illustrated.
[0119] As reference Figures 1 to 5 As described, the point cloud content providing system or point cloud encoder (eg, point cloud video encoder 10002, Figure 3 The point cloud encoder or LOD generator 30009) can generate LOD. LOD is generated by reorganizing points into a set of refinement levels according to the set LOD distance value (or Euclidean distance set). The LOD generation process is performed not only by the point cloud encoder, but also by the point cloud decoder.
[0120] Figure 6 The upper part of shows examples of points (P0 to P9) of point cloud content distributed in 3D space. Figure 6 In , the original order represents the order of points P0 to P9 before LOD generation. Figure 6 In the LOD-based order, the order of points generated according to the LOD is shown. Points are reorganized by LOD. In addition, a high LOD contains points belonging to a lower LOD. Figure 6 As shown, LOD0 contains P0, P5, P4, and P2. LOD1 contains the points of LOD0, P1, P6, and P3. LOD2 contains the points of LOD0, the points of LOD1, P9, P8, and P7.
[0121] As reference Figure 3 As described, the point cloud encoder according to the embodiment may selectively or in combination perform prediction transform coding, lifting transform coding, and RAHT transform coding.
[0122] The point cloud encoder according to the embodiment may generate a predictor for a point to perform predictive transform coding for setting a prediction attribute (or a prediction attribute value) of each point. That is, N predictors may be generated for N points. The predictor according to the embodiment may calculate a weight (=1 / distance) based on the LOD value of each point, index information about neighboring points that exist within a set distance of each LOD, and the distance to the neighboring point.
[0123] The predicted attribute (or attribute value) according to the embodiment is set to the average of the values obtained by multiplying the attribute (or attribute value) (e.g., color, reflectivity, etc.) of the neighboring points set in the predictor of each point by the weight (or weight value) calculated based on the distance to each neighboring point. The point cloud encoder (e.g., coefficient quantizer 30011) according to the embodiment may quantize and inverse quantize the residual (which may be referred to as residual attribute, residual attribute value or attribute prediction residual, attribute residual) obtained by subtracting the predicted attribute (attribute value) from the attribute (attribute value) of each point. The quantization process is configured as shown in the following table.
[0124] Table. Attribute prediction residual quantization pseudo code
[0125] int PCCQuantization(int value,int quantStep){
[0126] if(value>=0){
[0127] return floor(value / quantStep+1.0 / 3.0);
[0128] }else{
[0129] return-floor(-value / quantStep+1.0 / 3.0);
[0130] }
[0131] }
[0132] Table. Pseudocode for inverse quantization of attribute prediction residuals
[0133] int PCCInverseQuantization(int value,int quantStep){
[0134] if(quantStep==0){
[0135] return value;
[0136] }else{
[0137] return value*quantStep;
[0138] }
[0139] }
[0140] When the predictor of each point has a neighboring point, the point cloud encoder (e.g., the arithmetic encoder 30012) according to the embodiment may perform entropy encoding on the quantized and inverse quantized residual values as described above. When the predictor of each point has no neighboring point, the point cloud encoder (e.g., the arithmetic encoder 30012) according to the embodiment may perform entropy encoding on the attributes of the corresponding point without performing the above operation.
[0141] The point cloud encoder (e.g., lifting transformer 30010) according to an embodiment may generate a predictor for each point, set the calculated LOD and register neighbor points in the predictor, and set weights according to the distance to the neighbor points to perform lifting transform encoding. The lifting transform encoding according to an embodiment is similar to the above-mentioned predictive transform encoding, but is different in that weights are cumulatively applied to attribute values. The process of cumulatively applying weights to attribute values according to an embodiment is configured as follows.
[0142] 1) Create an array quantized weight (QW) for storing weight values of each point. The initial value of all elements of QW is 1.0. Multiply the QW value of the predictor index of the neighbor node registered in the predictor by the weight of the predictor of the current point, and add the values obtained by multiplication.
[0143] 2) Boosting prediction process: The value obtained by multiplying the attribute value of the point by the weight is subtracted from the existing attribute value to calculate the predicted attribute value.
[0144] 3) Create temporary arrays called updateweight and update, and initialize the temporary arrays to zero.
[0145] 4) Accumulate the weight calculated by multiplying the weight calculated for all predictors by the weight stored in the QW corresponding to the predictor index with the updateweight array as the index of the neighbor node. Accumulate the value obtained by multiplying the attribute value of the neighbor node index by the calculated weight with the update array.
[0146] 5) Boosting update process: Divide the attribute values of the update array of all predictors by the weight value of the updateweight array of the predictor index, and add the existing attribute value to the value obtained by the division.
[0147] 6) For all predictors, the predicted attribute is calculated by multiplying the attribute value updated by the lifting update process by the weight (stored in QW) updated by the lifting prediction process. The point cloud encoder (e.g., coefficient quantizer 30011) according to the embodiment quantizes the predicted attribute value. In addition, the point cloud encoder (e.g., arithmetic encoder 30012) performs entropy encoding on the quantized attribute value.
[0148] A point cloud encoder according to an embodiment (e.g., RAHT transformer 30008) may perform RAHT transform coding, in which attributes associated with nodes at a lower level in an octree are used to predict attributes of nodes at a higher level. RAHT transform coding is an example of attribute intra-frame coding by scanning backward through an octree. A point cloud encoder according to an embodiment scans the entire area starting from voxels and repeats a merging process of merging voxels into larger blocks at each step until a root node is reached. The merging process according to an embodiment is performed only on occupied nodes. The merging process is not performed on empty nodes. The merging process is performed on the upper node directly above the empty node.
[0149] The following formula represents the RAHT transformation matrix. In this formula, Represents the average attribute value of voxels at level l. Can be based on and to calculate. and The weight is and
[0150]
[0151] Here, Is the low-pass value and is used during the next highest level of merging. Denotes the high-pass coefficient. The high-pass coefficient of each step is quantized and subjected to entropy coding (eg, encoded by arithmetic encoder 300012). The weight is calculated as pass and Create the root node as follows.
[0152]
[0153] The values of gDC are also quantized and subjected to entropy decoding like the high-pass coefficients.
[0154] Figure 7 A point cloud decoder according to an embodiment is illustrated.
[0155] Figure 7 The point cloud decoder shown is an example of a point cloud decoder and can perform a decoding operation, which is Figures 1 to 6 The inverse process of the encoding operation of the point cloud encoder shown.
[0156] As reference Figure 1 and Figure 6 As described, the point cloud decoder can perform geometry decoding and attribute decoding. Geometry decoding is performed before attribute decoding.
[0157] According to an embodiment, a point cloud decoder includes an arithmetic decoder (arithmetic decoding) 7000, an octree synthesizer (synthesized octree) 7001, a surface approximation synthesizer (synthesized surface approximation) 7002 and a geometry reconstructor (reconstructed geometry) 7003, an inverse coordinate transformer (inverse transformed coordinates) 7004, an arithmetic decoder (arithmetic decoding) 7005, an inverse quantizer (inverse quantization) 7006, a RAHT transformer 7007, an LOD generator (generate LOD) 7008, an inverse lifting (inverse lifting) 7009 and / or an inverse color transformer (inverse transformed color) 7010.
[0158] The arithmetic decoder 7000, the octree synthesizer 7001, the surface approximation synthesizer 7002, the geometry reconstructor 7003, and the coordinate inverse transformer 7004 may perform geometry decoding. The geometry decoding according to the embodiment may include direct decoding and triplet geometry decoding. Direct encoding and triplet geometry decoding are selectively applied. The geometry decoding is not limited to the above examples, and as a reference Figures 1 to 6 The inverse process of the geometric encoding described is performed.
[0159] The arithmetic decoder 7000 according to the embodiment decodes the received geometry bitstream based on arithmetic coding. The operation of the arithmetic decoder 7000 corresponds to the inverse process of the arithmetic encoder 30004.
[0160] The octree synthesizer 7001 according to the embodiment may generate an octree by acquiring an occupancy code (or information about the geometry obtained as a result of decoding) from the decoded geometry bitstream. Figures 1 to 6 Describe the configuration in detail.
[0161] When triplet geometry encoding is applied, the surface approximation synthesizer 7002 according to an embodiment may synthesize a surface based on the decoded geometry and / or the generated octree.
[0162] According to an embodiment, the geometry reconstructor 7003 may regenerate the geometry based on the surface and / or the decoded geometry. Figures 1 to 9 As described, direct coding and triplet geometry coding are selectively applied. Therefore, the geometry reconstructor 7003 directly imports the position information about the points to which direct coding is applied and adds them. When triplet geometry coding is applied, the geometry reconstructor 7003 can reconstruct the geometry by performing the reconstruction operations (e.g., triangle reconstruction, upsampling, and voxelization) of the geometry reconstructor 30005. Details and References Figure 6 Those described are the same, so their description is omitted. The reconstructed geometry may include a point cloud screen or frame that does not contain attributes.
[0163] The coordinate inverse transformer 7004 according to an embodiment may acquire a point position by transforming the coordinates based on the reconstructed geometry.
[0164] The arithmetic decoder 7005, the inverse quantizer 7006, the RAHT transformer 7007, the LOD generator 7008, the inverse lifting 7009 and / or the color inverse transformer 7010 may perform reference Figure 6 Attribute decoding described. Attribute decoding according to an embodiment includes regional adaptive hierarchical transform (RAHT) decoding, hierarchical nearest neighbor prediction (prediction transform) decoding based on interpolation, and hierarchical nearest neighbor prediction (lifting transform) decoding based on interpolation with an update / lifting step. The above three decoding schemes can be used selectively, or a combination of one or more decoding schemes can be used. Attribute decoding according to an embodiment is not limited to the above examples.
[0165] The arithmetic decoder 7005 according to the embodiment decodes the attribute bit stream through arithmetic coding.
[0166] The inverse quantizer 7006 according to the embodiment inversely quantizes information about the decoded attribute bitstream or the attribute obtained as a result of decoding, and outputs the inversely quantized attribute (or attribute value). The inverse quantization may be selectively applied based on the attribute encoding of the point cloud encoder.
[0167] According to an embodiment, the RAHT transformer 7007, the LOD generator 7008 and / or the inverse lifter 7009 may process the reconstructed geometry and inverse quantized attributes. As described above, the RAHT transformer 7007, the LOD generator 7008 and / or the inverse lifter 7009 may selectively perform a decoding operation corresponding to the encoding of the point cloud encoder.
[0168] The color inverse transformer 7010 according to an embodiment performs inverse transform encoding to inversely transform a color value (or texture) included in the decoded attribute. The operation of the color inverse transformer 7010 may be selectively performed based on the operation of the color transformer 30006 of the point cloud encoder.
[0169] Although not shown in the figure, Figure 7 The elements of the point cloud decoder may be implemented by hardware, software, firmware, or a combination thereof including one or more processors or integrated circuits configured to communicate with one or more memories included in the point cloud providing device. The one or more processors may execute the above Figure 7 At least one or more of the operations and / or functions of the elements of the point cloud decoder. In addition, one or more processors may be operable or executed to perform Figure 7 A software program and / or instruction set for the operation and / or functionality of the elements of a point cloud decoder.
[0170] Figure 8 A transmitting device according to an embodiment is illustrated.
[0171] Figure 8The sending device shown is Figure 1 The sending device 10000 (or Figure 3 Example of a point cloud encoder). Figure 8 The sending device shown can be executed with reference to Figures 1 to 6 One or more operations and methods that are the same or similar to those of the point cloud encoder described herein. A transmitting device according to an embodiment may include a data input unit 8000, a quantization processor 8001, a voxelization processor 8002, an octree occupancy code generator 8003, a surface model processor 8004, an intra / inter encoding processor 8005, an arithmetic encoder 8006, a metadata processor 8007, a color transformation processor 8008, an attribute transformation processor 8009, a prediction / lifting / RAHT transformation processor 8010, an arithmetic encoder 8011 and / or a transmitting processor 8012.
[0172] The data input unit 8000 according to the embodiment receives or acquires point cloud data. The data input unit 8000 may perform the same operation and / or acquisition method as the point cloud video acquirer 10001 (or refer to Figure 2 The acquisition process 20000) described above has the same or similar operations and / or acquisition methods.
[0173] The data input unit 8000, the quantization processor 8001, the voxelization processor 8002, the octree occupancy code generator 8003, the surface model processor 8004, the intra / inter coding processor 8005 and the arithmetic encoder 8006 perform geometric coding. Figures 1 to 9 The geometrical encodings described are the same or similar, so their detailed description is omitted.
[0174] The quantization processor 8001 according to an embodiment quantizes geometry (e.g., position values of points). The operation and / or quantization of the quantization processor 8001 is similar to the reference Figure 3 The operation and / or quantization of the quantizer 30001 described above are the same or similar. Figures 1 to 9 Same as those described.
[0175] According to an embodiment, the voxelization processor 8002 voxelizes the quantized position value of the point. The voxelization processor 8002 may perform the same as the reference Figure 3 The operation and / or voxelization process of the quantizer 30001 described above is the same or similar to the operation and / or process described above. Figures 1 to 6 Same as those described.
[0176] The octree occupancy code generator 8003 according to the embodiment performs octree encoding on the voxelized position of the point based on the octree structure. The octree occupancy code generator 8003 may generate an occupancy code. The octree occupancy code generator 8003 may perform the same as the reference code. Figure 3 and Figure 4 The operations and / or methods of the point cloud encoder (or octree analyzer 30002) described herein are the same or similar to the operations and / or methods described herein. Figures 1 to 6 Same as those described.
[0177] According to an embodiment, the surface model processor 8004 may perform triplet geometry encoding based on the surface model to reconstruct the point position in a specific area (or node) based on voxels. Figure 3 The operations and / or methods of the point cloud encoder (e.g., surface approximation analyzer 30003) described above are the same or similar to the operations and / or methods. Figures 1 to 6 Same as those described.
[0178] According to an embodiment, the intra-frame / inter-frame encoding processor 8005 may perform intra-frame / inter-frame encoding on the point cloud data. The intra-frame / inter-frame encoding processor 8005 may perform the same as the reference. Figure 7 The intra / inter coding described is the same or similar to the coding. Details and references Figure 7 The intra / inter encoding processor 8005 may be included in the arithmetic encoder 8006 according to an embodiment.
[0179] According to an embodiment, the arithmetic encoder 8006 performs entropy coding on the octree and / or approximate octree of the point cloud data. For example, the coding scheme includes arithmetic coding. The arithmetic encoder 8006 performs the same or similar operations and / or methods as the operations and / or methods of the arithmetic encoder 30004.
[0180] The metadata processor 8007 according to an embodiment processes metadata (e.g., set values) about the point cloud data and provides it to necessary processing processes such as geometry coding and / or attribute coding. In addition, the metadata processor 8007 according to an embodiment may generate and / or process signaling information related to geometry coding and / or attribute coding. The signaling information according to an embodiment may be encoded separately from the geometry coding and / or attribute coding. The signaling information according to an embodiment may be interleaved.
[0181] The color conversion processor 8008, the attribute conversion processor 8009, the prediction / lifting / RAHT conversion processor 8010 and the arithmetic encoder 8011 perform attribute encoding. Figures 1 to 6 The attribute codes described are the same or similar, so their detailed description is omitted.
[0182] The color transform processor 8008 according to an embodiment performs color transform encoding to transform the color value included in the attribute. The color transform processor 8008 may perform color transform encoding based on the reconstructed geometry. The reconstructed geometry is compared with the reference Figures 1 to 9 In addition, its execution is the same as that of reference Figure 3 The operations and / or methods of the color converter 30006 described above are the same as or similar to the operations and / or methods described above, and detailed descriptions thereof are omitted.
[0183] The attribute transformation processor 8009 according to an embodiment performs attribute transformation to transform attributes based on reconstructed geometry and / or locations where geometry encoding is not performed. The attribute transformation processor 8009 performs the attribute transformation with reference to Figure 3 The operations and / or methods of the attribute converter 30007 described in the foregoing description are the same as or similar to those of the attribute converter 30007. Detailed description thereof is omitted. The prediction / lifting / RAHT transform processor 8010 according to the embodiment may encode the transformed attribute by any one or a combination of RAHT coding, prediction transform coding, and lifting transform coding. The prediction / lifting / RAHT transform processor 8010 performs the same as or similar to the reference. Figure 3 The operations of the RAHT transformer 30008, the LOD generator 30009 and the lifting transformer 30010 described above are the same or similar to at least one operation. In addition, the prediction transform coding, the lifting transform coding and the RAHT transform coding are the same as those of the reference Figures 1 to 9 Those described are the same, so their detailed description is omitted.
[0184] The arithmetic encoder 8011 according to the embodiment may encode the encoded attribute based on arithmetic coding. The arithmetic encoder 8011 performs the same or similar operation and / or method as that of the arithmetic encoder 300012.
[0185] The transmitting processor 8012 according to the embodiment may transmit individual bitstreams containing coded geometry and / or coded attributes and metadata information, or transmit a bitstream configured with coded geometry and / or coded attributes and metadata information. When the coded geometry and / or coded attributes and metadata information according to the embodiment are configured into a bitstream, the bitstream may include one or more sub-bitstreams. The bitstream according to the embodiment may include signaling information and slice data, and the signaling information includes a sequence parameter set (SPS) for sequence level signaling, a geometry parameter set (GPS) for geometry information coding signaling, an attribute parameter set (APS) for attribute information coding signaling, and a patch parameter set (TPS) for patch level signaling. The slice data may include information about one or more slices. A slice according to the embodiment may include a geometry bitstream Geom00 and one or more attribute bitstreams Attr00 and Attr10.
[0186] A slice is a sequence of syntactic elements that represents the entirety or a portion of an encoded point cloud frame.
[0187] The TPS according to an embodiment may include information about each of the one or more tiles (e.g., coordinate information and height / size information about a bounding box). The geometry bitstream may include a header and a payload. The header of the geometry bitstream according to an embodiment may include a parameter set identifier (geom_parameter_set_id), a tile identifier (geom_tile_id), and a slice identifier (geom_slice_id) included in the GPS, as well as information about the data contained in the payload. As described above, the metadata processor 8007 according to an embodiment may generate and / or process signaling information and send it to the transmission processor 8012. According to an embodiment, an element that performs geometry encoding and an element that performs attribute encoding may share data / information with each other as indicated by the dotted lines. The transmission processor 8012 according to an embodiment may perform operations and / or transmission methods that are the same or similar to those of the transmitter 10003. Details and References Figure 1 and Figure 2 Those described are the same, so their description is omitted.
[0188] Fig. 9 A receiving device according to an embodiment is illustrated.
[0189] Fig. 9 The receiving device shown is Figure 1 The receiving device 10004 (or Fig.10 and Fig.11 Example of a point cloud decoder. Fig. 9 The receiving device shown can execute and refer to Figures 1 to 11 One or more operations and methods that are the same or similar to those of the described point cloud decoder.
[0190] The receiving device according to the embodiment may include a receiver 9000, a receiving processor 9001, an arithmetic decoder 9002, an octtree reconstruction processor based on an occupancy code 9003, a surface model processor (triangle reconstruction, upsampling, voxelization) 9004, an inverse quantization processor 9005, a metadata parser 9006, an arithmetic decoder 9007, an inverse quantization processor 9008, a prediction / lifting / RAHT inverse transform processor 9009, a color inverse transform processor 9010 and / or a renderer 9011. Each decoding element according to the embodiment may perform an inverse process of the operation of the corresponding encoding element according to the embodiment.
[0191] The receiver 9000 according to the embodiment receives the point cloud data. The receiver 9000 may perform the same Figure 1The operation and / or receiving method of the receiver 10005 is the same as or similar to the operation and / or receiving method of the receiver 10005. The detailed description thereof is omitted.
[0192] The reception processor 9001 according to an embodiment may acquire a geometry bitstream and / or an attribute bitstream from the received data. The reception processor 9001 may be included in the receiver 9000 .
[0193] The arithmetic decoder 9002, the octtree reconstruction processor 9003 based on the occupancy code, the surface model processor 9004 and the inverse quantization processor 9005 may perform geometric decoding. Figures 1 to 10 The geometric decoding described is the same or similar, so its detailed description is omitted.
[0194] The arithmetic decoder 9002 according to the embodiment may decode the geometry bitstream based on arithmetic coding. The arithmetic decoder 9002 performs the same or similar operations and / or encoding as those of the arithmetic decoder 7000.
[0195] The octree reconstruction processor 9003 based on the occupancy code according to the embodiment can reconstruct the octree by obtaining the occupancy code from the decoded geometry bitstream (or the information about the geometry obtained as a result of decoding). The octree reconstruction processor 9003 based on the occupancy code performs the same or similar operations and / or methods as the operation of the octree synthesizer 7001 and / or the octree generation method. When triplet geometry coding is applied, the surface model processor 9004 according to the embodiment can perform triplet geometry decoding and related geometry reconstruction (e.g., triangle reconstruction, upsampling, voxelization) based on the surface model method. The surface model processor 9004 performs the same or similar operations as the surface approximation synthesizer 7002 and / or the geometry reconstructor 7003.
[0196] The inverse quantization processor 9005 according to an embodiment may inversely quantize the decoded geometry.
[0197] According to an embodiment, the metadata parser 9006 may parse metadata (eg, setting values) contained in the received point cloud data. The metadata parser 9006 may pass the metadata to the geometry decoding and / or attribute decoding. Figure 8 The metadata described is the same, so a detailed description thereof is omitted.
[0198] The arithmetic decoder 9007, the inverse quantization processor 9008, the prediction / lifting / RAHT inverse transform processor 9009 and the color inverse transform processor 9010 perform attribute decoding. Figures 1 to 10 The attribute decoding described is the same or similar, so the detailed description thereof is omitted.
[0199] The arithmetic decoder 9007 according to the embodiment may decode the attribute bitstream by arithmetic coding. The arithmetic decoder 9007 may decode the attribute bitstream based on the reconstructed geometry. The arithmetic decoder 9007 performs the same or similar operation and / or encoding as that of the arithmetic decoder 7005.
[0200] The inverse quantization processor 9008 according to an embodiment may inversely quantize the decoded attribute bitstream. The inverse quantization processor 9008 performs the same or similar operation and / or method as the inverse quantizer 7006 and / or the inverse quantization method.
[0201] The prediction / lifting / RAHT inverse transform processor 9009 according to an embodiment may process the reconstructed geometry and inverse quantized attributes. The prediction / lifting / RAHT inverse transform processor 9009 performs one or more operations and / or decoding that are the same or similar to the operations and / or decoding of the RAHT converter 7007, the LOD generator 7008 and / or the inverse lifter 7009. The color inverse transform processor 9010 according to an embodiment performs inverse transform encoding to inversely transform the color value (or texture) included in the decoded attribute. The color inverse transform processor 9010 performs the same or similar operations and / or inverse transform encoding as the operations and / or inverse transform encoding of the color inverse converter 7010. The renderer 9011 according to an embodiment may render point cloud data.
[0202] Fig.10 An exemplary structure that can be operated in conjunction with the point cloud data transmitting / receiving method / apparatus according to an embodiment is illustrated.
[0203] Fig.10 The structure of 1060 represents a configuration in which at least one of the server 1060, the robot 1010, the self-driving vehicle 1020, the XR device 1030, the smart phone 1040, the home appliance 1050, and / or the head mounted display (HMD) 1070 is connected to the cloud network 1000. The robot 1010, the self-driving vehicle 1020, the XR device 1030, the smart phone 1040, or the home appliance 1050 is referred to as a device. In addition, the XR device 1030 may correspond to a point cloud data (PCC) device according to an embodiment or may be operably connected to a PCC device.
[0204] The cloud network 1000 may represent a network that constitutes a part of a cloud computing infrastructure or exists in a cloud computing infrastructure. Here, the cloud network 1000 may be configured using a 3G network, a 4G or Long Term Evolution (LTE) network, or a 5G network.
[0205] Server 1060 can be connected to at least one of the robot 1010, the autonomous vehicle 1020, the XR device 1030, the smart phone 1040, the household appliance 1050, and / or the HMD 1070 via the cloud network 1000, and can assist in the processing of at least a part of the connected devices 1010 to 1070.
[0206] The HMD 1070 represents one of the implementation types of the XR device and / or the PCC device according to an embodiment. The HMD-type device according to an embodiment includes a communication unit, a control unit, a memory, an I / O unit, a sensor unit, and a power supply unit.
[0207] Hereinafter, various embodiments of the devices 1010 to 1050 to which the above technology is applied will be described. Fig.10 The illustrated devices 1010 to 1050 can be operably connected / linked to the point cloud data transmitting device and the receiving device according to the above embodiments.
[0208] <PCC+XR>
[0209] The XR / PCC device 1030 can adopt PCC technology and / or XR (AR+VR) technology, and can be implemented as an HMD, a head-up display (HUD) provided in a vehicle, a television, a mobile phone, a smart phone, a computer, a wearable device, a household appliance, a digital sign, a vehicle, a stationary robot, or a mobile robot.
[0210] The XR / PCC device 1030 can analyze 3D point cloud data or image data obtained through various sensors or from external devices and generate position data and attribute data about 3D points. Accordingly, the XR / PCC device 1030 can obtain information about the surrounding space or real objects, and render and output XR objects. For example, the XR / PCC device 1030 can match an XR object including auxiliary information about the identified object with the identified object and output the matched XR object.
[0211] <PCC+XR+mobile phone>
[0212] The XR / PCC device 1030 can be implemented as the mobile phone 1040 by applying PCC technology.
[0213] The mobile phone 1040 can decode and display point cloud content based on PCC technology.
[0214] <PCC+autonomous driving+XR>
[0215] The autonomous vehicle 1020 can be implemented as a mobile robot, a vehicle, an unmanned aerial vehicle, etc. by applying PCC technology and XR technology.
[0216] The self-driving vehicle 1020 to which the XR / PCC technology is applied may represent a self-driving vehicle provided with a means for providing an XR image, or a self-driving vehicle as a control / interaction target in the XR image. Specifically, as a control / interaction target in the XR image, the self-driving vehicle 1020 may be distinguished from the XR device 1030 and may be operably connected thereto.
[0217] The self-driving vehicle 1020 having means for providing XR / PCC images may acquire sensor information from sensors including cameras, and output generated XR / PCC images based on the acquired sensor information. For example, the self-driving vehicle 1020 may have a HUD and output XR / PCC images thereto, thereby providing passengers with XR / PCC objects corresponding to real objects or objects presented on the screen.
[0218] When the XR / PCC object is output to the HUD, at least a portion of the XR / PCC object may be output to overlap with the real object to which the passenger's eyes are directed. On the other hand, when the XR / PCC object is output on a display provided in the self-driving vehicle, at least a portion of the XR / PCC object may be output to overlap with the object on the screen. For example, the self-driving vehicle 1220 may output XR / PCC objects corresponding to objects such as a road, another vehicle, a traffic light, a traffic sign, a two-wheeled vehicle, a pedestrian, and a building.
[0219] Virtual reality (VR) technology, augmented reality (AR) technology, mixed reality (MR) technology, and / or point cloud compression (PCC) technology according to an embodiment are applicable to various devices.
[0220] In other words, VR technology is a display technology that only provides CG images of real-world objects, backgrounds, etc. On the other hand, AR technology refers to a technology that displays a virtually created CG image on an image of a real object. MR technology is similar to the above-mentioned AR technology in that the virtual objects to be displayed are mixed and combined with the real world. However, MR technology is different from AR technology in that AR technology clearly distinguishes between real objects and virtual objects created as CG images and uses virtual objects as supplementary objects to real objects, while MR technology treats virtual objects as objects with properties equivalent to real objects. More specifically, an example of the application of MR technology is a holographic service.
[0221] Recently, VR, AR, and MR technologies are often referred to as extended reality (XR) technologies, rather than being clearly distinguished from each other. Therefore, embodiments of the present disclosure are applicable to any of VR, AR, MR, and XR technologies. Encoding / decoding based on PCC, V-PCC, and G-PCC technologies are applicable to such technologies.
[0222] The PCC method / apparatus according to the embodiment may be applied to a vehicle that provides a self-driving service.
[0223] Vehicles providing self-driving services are connected to the PCC device for wired / wireless communication.
[0224] When a point cloud data (PCC) transmitting / receiving device according to an embodiment is connected to a vehicle for wired / wireless communication, the device may receive / process content data related to an AR / VR / PCC service (which may be provided together with a self-driving service) and send it to the vehicle. In the case where the PCC transmitting / receiving device is installed on the vehicle, the PCC transmitting / receiving device may receive / process content data related to the AR / VR / PCC service and provide it to the user based on a user input signal input through a user interface device. The vehicle or user interface device according to the embodiment may receive a user input signal. The user input signal according to the embodiment may include a signal indicating a self-driving service.
[0225] As used herein, the term "point cloud data transmission method / device according to an embodiment" should be interpreted as referring to Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2 Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices Fig.11 Tree-based encoding, Fig.12 The transmitting device and the encoder, Figures 14 to 22 Bitstream generation, Fig.23 The sending method, etc.
[0226] As used herein, the term "point cloud data receiving method / device according to an embodiment" should be interpreted as referring to Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002 - decoding 20003 - rendering 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices Fig.11 Tree-based decoding, Fig.13 receiving device and decoder, Fig.24 receiving method, etc.
[0227] In addition, the point cloud data sending and receiving method / apparatus may be referred to as a method / apparatus according to an embodiment.
[0228] According to the embodiment, geometric data, geometric information, position information, etc. constituting point cloud data will be interpreted as having the same meaning. Similarly, attribute data, attribute information, etc. constituting point cloud data will be interpreted as having the same meaning.
[0229] The method / apparatus according to an embodiment may include and perform a quadratic residual transform for point cloud geometry and attribute compression.
[0230] After the geometric and attribute transformations, the residuals are entropy encoded and sent through the bitstream. There are common characteristics between the residuals output after the primary transformation of the geometry and attributes. The implementation aims to reduce the secondary residuals by secondary transformation between frames. In addition to the geometric and attribute transformations currently used as standard in GPCC, secondary transformations that can correspond to each implementation are proposed, and a method for improving the compression rate by reducing the residual value is provided, which can be applied to inter-frame compression.
[0231] Embodiments include a method for improving compression performance by reducing residual errors in a 3D point cloud data compression process using a transform or a secondary transform after the transform.
[0232] A point cloud consists of a set of points, and each point may have geometry information and attribute information. The point cloud encoding process may include compressing the geometry and compressing the attribute information based on the reconstructed geometry (=decoded geometry) with position information changed by compression. The point cloud decoding process may include receiving the encoded geometry bitstream and attribute bitstream, decoding the geometry, and decoding the attribute information based on the geometry reconstructed by decoding.
[0233] In order to represent the position and size of the 3D space as occupancy, the octree configuration can be performed as follows. Since the z-axis is added, the space is divided based on the x-axis, y-axis, and z-axis, 8 spaces are created, and each of the 8 spaces is divided again based on the x-axis, y-axis, and z-axis, creating 8 spaces for each small space. The area is divided until the leaf node becomes a voxel, and the octree data structure for managing the 8 child node areas can be used to efficiently manage the size and position of the area.
[0234] The octree according to the embodiment refers to a tree structure having one or more nodes per depth (level). Each node having a size corresponding to the depth (level) may have one or more points, and there may be nodes not occupied by points.
[0235] Prediction tree refers to the process of creating a tree structure with connections between points from the xyz coordinates of the point cloud. The prediction tree is constructed as follows. The received points are sorted based on a specific criterion and a prediction tree structure is created by calculating the prediction values based on the neighbor nodes from the rearranged layers.
[0236] The point cloud may have various attribute values for the points, and may include attribute values differently according to characteristics of the content, such as color and reflectivity. Existing methods include encoding the prediction value and the residual according to a prediction transform and a lifting transform.
[0237] In the prediction transformation and the lifting transformation, points can be grouped into detail levels (called LOD). This is called LOD generation. In the following, groups with different LODs can be referred to as LOD sets. LOD0 is a set of points with the largest distance between points. As l increases, the distance between points in LOD1 decreases. After generating the LOD set, X (> 0) nearest neighbor points can be found in a group with the same or lower LOD (large distance between nodes) and registered as a neighbor point set in the predictor. X is the maximum number of points that can be configured as neighbor points and can be input as a user parameter. Neighbor points of P3 belonging to LOD1 are searched in LOD0 and LOD1. The three nearest neighbor nodes can be P2, P4 and P6. These three nodes are registered as neighbor point sets in the predictor of P3. Each point can have a predictor. Attributes are predicted based on the neighbor points registered in the predictor. The predictor can have a neighbor point set, and based on the distance from each neighbor point, 1 / 2 distance is registered as a weight. The predictor of node P3 has (P2 P4 P6) as the set of neighbor points and calculates the weight based on the distance to each neighbor point. The weight of each neighbor point is (1 / √(P2-P3)2, 1 / √(P4-P3)2, 1 / √(P6-P3)2). Once the set of neighbor points of the predictor is configured, the weight of the corresponding neighbor point can be normalized by the sum of all the weights of the neighbor points.
[0238] Embodiments include a method for performing a quadratic residual transform of geometry and attribute information between frames. A quadratic residual transform refers to geometry or attribute information obtained from a primary residual transform or a primary transform. The difference between similar residuals in the residuals generated from geometry and attributes, respectively, may be referred to as a quadratic residual. Transforming the quadratic residual (i.e., the difference between the residuals) may be referred to as a quadratic residual transform.
[0239] After the primary transformation of the residual signal, the compression performance can be improved by a secondary transformation, and can be applied to all signals called residuals. In the current GPCC, residual refers to the signal obtained after some transformation in point cloud compression, such as occupancy tree, prediction tree, prediction transform, lifting transform, etc.
[0240] The embodiment includes a method of performing secondary transformation on a signal obtained after each transformation. In addition, the embodiment proposes a secondary transformation method using inter-frame information, which is suitable for unit-based inter-frame coding applications.
[0241] Fig.11 A quadratic residual transform method for an occupancy tree according to an embodiment is illustrated.
[0242] Point cloud data sending method / device according to an embodiment ( Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2 Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices Fig.12 A transmitting device and an encoder, and Fig.23 The sending method can be based on Fig.11 The illustrated occupancy tree (which has the same meaning as an octree) performs both geometry coding and attribute coding. The residual generated from the occupancy tree and transformed once may be transformed twice.
[0243] Point cloud data receiving method / device according to an embodiment ( Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Send 20002 - Decode 20003 - Render 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices Fig.13 A receiving device and a decoder, and Fig.24 The receiving method) can be based on Fig.11 The occupancy tree shown (which has the same meaning as the octree) is used to perform geometry decoding and attribute decoding. The residual generated from the occupancy tree and transformed once can be transformed twice.
[0244] The conditions for applying the secondary residual transform to the octree are as follows. According to an embodiment, the occupancy state is checked using an xyz space partitioning algorithm, occupancy is searched, and a plane mode, QTBT, IDCM, etc. is determined. Entropy coding is performed according to probability by determining the occupancy of the six faces adjacent to the occupancy and the occupancy of the parent node. In this case, an additional transform may be applied before entropy coding, which is called a secondary residual transform.
[0245] like Fig.11 As shown, a parent node at the top level, i.e., level 0 (which may also be referred to as depth 0), may include one or more child nodes. A subdivision node at level 1 may include one or more nodes at level 2 depending on the occupancy state. The tree levels and nodes are hierarchically expanded to leaf nodes depending on the point occupancy state of the node.
[0246] The direct coding mode (DCM) refers to a mode in which isolated points existing in the occupancy tree nodes are excluded from the octree and subjected to direct coding.
[0247] The plane coding mode refers to the coding method for occupied sub-nodes belonging to the same horizontal plane.
[0248] The secondary residual transformation according to the embodiment performed before entropy encoding is an operation of transforming the residual generated after the neighbor search. Based on the occupancy tree, the neighbors of the current point are searched, and the residual between the neighbors and the current point can be transformed.
[0249] In the current GPCC, the index generated from the neighbor search is an occupancy index calculated based on the occupancy bit (occupancy_bit) and / or the occupancy byte (occupancy_byte). The occupancy index representing the relative subnode position of the only child node of the coding node is stored as an array and sent in the bitstream. The kth component of the relative subnode position of the child node of the coding node can be represented as occupancy_idx[]. In other words, the occupancy index represents an index related to the position. Since the occupancy index also affects the occupancy map, there may be inter-frame shifts on the occupancy map. The residual transform utilizes the redundancy that the difference between the current index and the index of the next frame is not significant. Therefore, the octree index of the previous frame is shifted according to the movement of the octree index of the current frame. Even if global motion is applied, the octree index is uniformly shifted or uniformly increased / decreased. Therefore, even if the intra-frame occupancy index (occupancy_idx) occupied by the existing octree is selected, the residual transform can be performed again by comparing occupancy_idx between frames. When the occupancy index (occupancy_idx) of the previous frame is defined as the reference occupancy index (ref_occupancy_idx) and the occupancy index (occupancy_idx) of the current frame is defined as the current occupancy index (cur_occupancy_idx), an equation for secondary residual transform, that is, an equation for calculating the difference between residual signals is given below.
[0250] occupancy_idx'=ref_occupancy_idx-cur_occupancy_idx
[0251] The set of differences between the residuals in all leaf nodes (occupancy_idx'), i.e., occupancy_idx'[k] including occupancy_idx'[0]..occupancy_idx'[k] (where k is the number of leaf nodes), is replaced (transformed) into a set of new values by applying the DCT / DST (Discrete Cosine Transform / Discrete Sine Transform) method. The replaced (transformed) set is subjected to entropy coding and then included in the bitstream to be sent to the receiving device.
[0252] Point cloud data sending method / device according to an embodiment ( Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2 Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices Fig.12 A transmitting device and an encoder, and Fig.23 The transmission method of the prediction tree can perform geometric coding and attribute coding based on the prediction tree. The residual generated from the prediction tree and transformed once can be transformed twice.
[0253] Point cloud data receiving method / device according to an embodiment ( Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Send 20002-decode 20003-render 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices Fig.13 A receiving device and a decoder and Fig.24 The receiving method of the method can perform geometric decoding and attribute decoding based on the prediction tree. The residual generated from the prediction tree and transformed once can be transformed twice.
[0254] A prediction tree refers to a parent (upper) - child (lower) structure generated by predicting a position value using the previous two points or two points from the previous frame. The prediction mode (ptn\_pred\_mode) indicates the mode used for point-based prediction and can be signaled from the encoder to the decoder as signaling information in the bitstream. The residual (PtnResidual) between the current point and the predicted value of the current point can be signaled by the bitstream. Although not specified in the present disclosure, a method of signaling a mode and per-point residual is being standardized for inter-frame coding. The residuals are similar due to the similarity in the way objects or roads move after global motion is applied between frames. A secondary residual transform can be performed by distinguishing between cases where the residuals are similar across modes and cases where the residuals are similar across frames.
[0255] The secondary residual transform is performed using the residual set calculated by mode, and is similar to the above equation. When the mode-specific residuals are similar, the residual set corresponding to modes 0 to 3 (the difference set between the residual signals) can be represented.
[0256] PtnResidual'[k][l]=PtnResidual[k][l]-PtnResidual[k][l-1]
[0257] {k=0..3}{l=0..number of residuals in mode k}
[0258] DCT / DST can be applied to the residual set. When DCT / DST is applied to the 2D set of PtnResidual', the set can be divided into a high-frequency area and a low-frequency area, and can be transformed by a specific block (4×4, 8×8, 32×32) or a variable block. In addition, a secondary residual transform can be performed on the residual generated after prediction (such as ptnSecResidual, aPos0, aPos1, aPos2, and residualAng).
[0259] Mode 0 to Mode 3 are as follows:
[0260] The main target of the prediction model can be the content of category 3. The prediction structure (tree) is generated from the point cloud. In the prediction tree, each point in the point cloud is connected to the vertex of the tree. Each vertex can be predicted only from the ancestors of the tree.
[0261] Mode 0: No prediction, Mode 1: Incremental prediction (i.e., p0), Mode 2: Linear prediction (i.e., 2p0-p1), Mode 3: Parallelogram predictor (i.e., 2p+p1-p2). Here, p0, p1, and p2 are the positions (points) of the parent, grandparent, and great-grandparent nodes of the current vertex.
[0262] Point cloud data sending method / device according to an embodiment ( Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2 Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices Fig.12 The transmitting device and the encoder and Fig.23 The transmission method of the prediction tree can perform geometric coding and attribute coding based on the prediction transformation and the lifting transformation. The residual generated from the prediction tree and transformed once can be transformed twice.
[0263] Point cloud data receiving method / device according to an embodiment ( Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Send 20002-decode 20003-render 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices Fig.13 A receiving device and a decoder and Fig.24 The receiving method of the invention can perform geometric decoding and attribute decoding based on the prediction transformation and the lifting transformation. The residual generated and transformed by the prediction transformation and the lifting transformation can be transformed twice.
[0264] The residual generated by the prediction / lifting transform can be transformed twice. By selecting the prediction mode method with predMode after performing the prediction transform, the residual corresponding to the coefficient (coeff_abs) is generated. The value of the coefficient (coeff_abs) can be used to predict the attribute value that changes between frames. Therefore, when the residuals of different modes are similar, they can be represented as a set of corresponding residuals (a set of differences between residual signals). Similar to the previous embodiment, DCT / DST can be applied to the secondary residual transform. This can be performed separately according to the number of attribute values (attrDim).
[0265] Fig.12 A point cloud data transmitting device according to an embodiment is illustrated.
[0266] Fig.12 Corresponding to a device for executing a method for transmitting point cloud data (corresponding to Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices and Fig.23 It can be called an encoder, and Fig.12 Each component of may correspond to hardware, software, a processor and / or a combination thereof. It may be implemented with a memory and a processor.
[0267] when Figure 3 or Figure 8 When the point cloud data sending device in performs inter-frame based compression, it can compress geometry and attributes based on the reference frame, and generate and send a bit stream, such as Fig.12 as shown in .
[0268] The data input unit acquires the point cloud. The point cloud data includes geometry and attributes. The point cloud data can be organized on a frame-by-frame basis.
[0269] The types of frames used for inter-frame coding may include I-frames, P-frames, and B-frames. A group of pictures (GOP) represents a group of frames. Unlike B-frames or P-frames, I-frames (intra-frames) are frames that do not refer to other frames. P-frames (predicted frames) are frames that refer to the immediately preceding I-frame and include only data that is different from the reference frame. B-frames (bidirectional frames) are
[0270] I-frames may be encoded by intra-frame coding.
[0271] The intra-frame encoder encodes the geometry and / or attributes of the intra-frame point cloud data to generate a bit stream corresponding to the I frame, as described with respect to the apparatus for performing the data transmission method according to an embodiment: Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2 Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices and Fig.23 The sending method.
[0272] For inter-frame coding, the frame reconstructor of the transmitting device reconstructs the coded data in the I frame bit stream. The inter-frame encoder receives P frames and / or B frames from the data input unit and encodes the current frame by referring to the previous frame (reference frame) based on the reconstructed I frame data.
[0273] The global motion and / or local motion estimation and compensation part estimates and compensates the motion information about the current frame based on the frame. It estimates the motion information based on the similarity of the data in a certain area or block of the current frame based on the reference frame. It can generate a motion vector by estimating the motion information, and predict the data of the current frame from the data of the previous frame based on the motion vector. By encoding the difference between the current data and the predicted data, the bitstream size can be effectively reduced. The implementation method includes global motion estimation based on global motion information for global estimation of intra-frame motion, and local motion estimation based on local motion information for local estimation of intra-frame motion.
[0274] Embodiments include encoding the geometry and properties of each inter-frame motion estimate.
[0275] The octree occupancy code generator of the geometry compressor generates an octree (occupancy tree) structure for the geometry and generates occupancy code bits indicating whether a node at each level (depth) occupies one or more points.
[0276] The geometry compressor may generate a prediction tree and encode the geometry based on the prediction tree.
[0277] The quadratic residual transform processor of the geometry compressor generates an occupancy index and generates the difference between the reference occupancy index and the current occupancy index as described above (occupancy_idx′=ref_occupancy_idx−cur_occupancy_idx).
[0278] According to an embodiment, for points generated based on a prediction tree, the difference between the point (geometry) residuals of the reference frame and the current frame is generated as described above (PtnResidual'[k][l]=PtnResidual[k][l]-PtnResidual[k][l-1]).
[0279] The prediction / lifting transform / RAHT processor of the attribute compressor performs prediction, lifting and RAHT transform on the attributes.
[0280] According to an embodiment, a difference between a residual of a reference frame and a residual of a current frame is generated with respect to a residual of coefficient information (coeff_abs) according to a prediction mode generated by prediction / lifting transform / RAHT.
[0281] For each of the geometry and attributes, an arithmetic coder of the encoder arithmetically codes the additional difference between the residual generated from the motion estimation and each encoding method.
[0282] Fig.13 A point cloud data receiving device according to an embodiment is illustrated.
[0283] Fig.13 Corresponding to the point cloud data receiving method / device according to the embodiment ( Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Send 20002-decode 20003-render 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices and Fig.24 receiving method). Fig.13 Each component of corresponds to hardware, software, a processor and / or a combination thereof. Fig.13 The device can perform Fig.12 The operation of the sending device is the opposite process.
[0284] The receiver of the receiving device may receive a bit stream including the encoded point cloud data and parameters corresponding to the signaling information from the transmitter of the transmitting device.
[0285] Similar to the transmitting device, the receiving device can perform both intra-frame decoding and inter-frame decoding.
[0286] The intraframe decoder of the receiving device can decode the geometry and attributes of the point cloud data in the I frame. The intraframe decoding method follows the Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002-Decoding 20003-Rendering 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices Fig.24 The receiving method describes the geometry decoding and attribute decoding operations.
[0287] The frame reconstructor of the receiving device reconstructs the decoded geometry and attributes in the I-frame and passes it to the inter-frame decoding.
[0288] For inter-frame decoding, a decoder of a receiving device may receive P frames and / or B frames from a receiver.
[0289] Similar to the transmitting device, the global motion and local motion estimation and compensation part of the receiving device can generate an intra-frame global motion vector and compensate for motion based on the data similarity between the reference frame and the current frame, or can generate an intra-frame local motion vector and compensate for motion.
[0290] The arithmetic decoder arithmetically decodes motion compensated geometry and attributes.
[0291] The inverse secondary residual transform processor parses the geometry secondary residual transform information (geom_secondary_residual_transform) indicating whether to use a secondary residual transform based on a reference frame received from the geometry compressor, sum the differences between the residuals for a second time to reconstruct the residuals, and sum the residuals for a first time to reconstruct the geometry.
[0292] In the case where the geometry is encoded based on a tree (octree or occupancy tree) associated with an occupancy code, the receiving device reconstructs the octree (tree) based on the occupancy code to construct the geometry as the position value of the point.
[0293] In the case where the geometry is encoded based on a prediction tree, the receiving device reconstructs the prediction tree to reconstruct the geometry as the position value of the point based on the prediction tree.
[0294] Parse the attribute secondary residual transform information (attr_secondary_residual_transform), which indicates whether to use a secondary residual transform based on the reference frame received from the attribute compressor to reconstruct the residual by summing the differences between the residuals for a second time and then summing the residuals for a first time to reconstruct the geometry.
[0295] The occupancy index (occupancy_idx), the prediction tree residual (PtnResidual), and the coefficient (coeff_abs), which are values transformed through the secondary residual transform, may be inversely transformed and delivered to the primary transform processor.
[0296] Fig.14 A bitstream containing point cloud data and parameters according to an embodiment is illustrated.
[0297] Point cloud data sending method / device according to an embodiment ( Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2 Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices Fig.12 The transmitting device and the encoder and Fig.23 The transmission method of the point cloud can be used to encode the point cloud and generate parameters to be sent in the bit stream, such as Figures 14 to 22 shown.
[0298] Point cloud data receiving method / device according to an embodiment ( Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Transmission 20002-Decoding 20003-Rendering 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices Fig.13 A receiving device and a decoder and Fig.24 The receiving method can receive Figures 14 to 22 , and decode the point cloud based on the parameters.
[0299] Signaling may be provided to add / execute an encoding / decoding method that uses a secondary transform of geometric and attribute residuals. Parameters according to an embodiment (which may be referred to as metadata, signaling information, etc.) may be generated in a process of a transmitter according to an embodiment described below and sent to a receiver according to an embodiment for use in a reconstruction process. For example, parameters according to an embodiment may be generated by a metadata processor (or metadata generator) in a transmitting device according to an embodiment described below and acquired by a metadata parser in a receiving device.
[0300] Each of the following abbreviations refers to: SPS: sequence parameter set; GPS: geometry parameter set; APS: attribute parameter set; TPS: tile parameter set; Geom: geometry bit stream = geometry data unit (geometry data unit header + geometry data + geometry data + geometry data unit tail); Attr: attribute bit stream = attribute data unit (attribute data unit header + attribute data + attribute data unit tail).
[0301] The point cloud can be divided into regions, such as tiles or slices, for processing. Each region has a different level of importance. Depending on the importance, different filters or filter units can be applied, allowing filtering methods with higher complexity and higher quality results to be used for important areas. Instead of applying complex filtering methods to the entire point cloud, different filtering methods can be applied to different areas (tile or slice areas) depending on the processing capabilities of the receiver, thereby ensuring better quality for areas important to the user and sufficient latency in the system. Therefore, when the point cloud is divided into tiles, different filters or filter units can be applied to the corresponding tiles. When the point cloud is divided into slices, different filters or filter units can be applied to the corresponding slices.
[0302] Reference Fig.14, the bitstream may include an SPS, a GPS, one or more APSs, a TPS, or one or more slices, which are the target units for parameter application. The TPS may include information about the origin and size (width, depth, and height) of the tile bounding box of one or more tiles. Slices are used as encoding / decoding units and may include geometry and one or more attributes. Geometry may consist of a geometry slice header and geometry slice data. Slices may also be referred to as data units. The geometry slice header or geometry data unit header carries information such as parameter set ID, tile ID, slice ID, origin and size of the geometry box, and the number of geometry points. Geometry slice data or geometry data unit carries the encoded geometry.
[0303] Fig.15 A sequence parameter set according to an embodiment is illustrated.
[0304] Fig.15 Examples include Fig.14 The SPS in the bitstream.
[0305] Fig.15 It is shown that the syntax with the secondary residual transform coding structure information is added to the SPS. The secondary residual transform coding structure information can be added to the SPS and sent with a signal. The SPS according to the embodiment follows the syntax of the SPS according to the GPCC standard. In addition, it includes the secondary residual transform coding information according to the embodiment.
[0306] geom_secondary_residual_transform: Indicates whether the geometry compressor should use a secondary residual transform using a reference frame.
[0307] attr_secondary_residual_transform: Indicates whether the attribute compressor uses a secondary residual transform using the reference frame.
[0308] Fig.16 A tile parameter set according to an embodiment is illustrated.
[0309] Fig.16 Examples include Fig.14 TPS in the bitstream.
[0310] Reference Fig.16 , the syntax with the added secondary residual transform coding structure information may be included in the TPS. The TPS according to the embodiment follows the syntax of the TPS according to the GPCC standard. In addition, the secondary residual transform structure information according to the embodiment may be added to the TPS and transmitted with a signal.
[0311] geom_secondary_residual_transform: Indicates whether the geometry compressor should use a secondary residual transform using a reference frame.
[0312] attr_secondary_residual_transform: Indicates whether the attribute compressor uses a secondary residual transform using the reference frame.
[0313] Fig.17 A geometry parameter set and an attribute parameter set according to an embodiment are illustrated.
[0314] Fig.17 Examples include Fig.14 GPS and APS in the bitstream.
[0315] Reference Fig.17 , the syntax with the added secondary residual transform coding structure information may be included in GPS and APS. The GPS and APS according to the embodiment follow the GPS and APS syntax according to the GPCC standard. In addition, the secondary residual transform structure information according to the embodiment may be added to GPS and APS and transmitted with a signal.
[0316] geom_secondary_residual_transform: Indicates whether the geometry compressor should use a secondary residual transform using a reference frame.
[0317] attr_secondary_residual_transform: Indicates whether the attribute compressor uses a secondary residual transform using the reference frame.
[0318] Fig.18 A geometry data unit and a geometry data unit header according to an embodiment are illustrated.
[0319] Fig.18 Examples include Fig.14 The geometry data units and geometry data unit headers in the bit stream.
[0320] Reference Fig.18 , the syntax with the added secondary residual transform coding structure information may be included in the geometry data unit and the geometry data unit header. The geometry data unit and the geometry data unit header according to the embodiment follow the geometry data unit and the geometry data unit header syntax according to the GPCC standard. In addition, the secondary residual transform structure information according to the embodiment may be added to the geometry data unit and the geometry data unit header and sent with a signal.
[0321] geom_tree_type: When set to 0, it indicates that occupancy trees are used to encode the tile geometry. When set to 1, it indicates that prediction trees are used to encode the tile geometry. The indications of 0 and 1 are interchangeable.
[0322] geom_secondary_residual_transform: Indicates whether the geometry compressor should use a secondary residual transform using a reference frame.
[0323] Fig.19 An occupancy tree according to an embodiment is illustrated.
[0324] Fig.19 Examples include Fig.14 The occupancy tree follows the occupancy tree syntax according to the GPCC standard.
[0325] Reference Fig.19 , the syntax with the added secondary residual transform coding structure information may be included in the geometric occupancy tree. The geometric occupancy tree according to the embodiment follows the geometric occupancy tree syntax according to the GPCC standard. In addition, the secondary residual transform structure information according to the embodiment may be added to the geometric occupancy tree and signaled.
[0326] The occupancy tree includes occupancy tree levels (depths). Each occupancy tree level includes nodes at depth. Nodes are identified by node indexes. Occupancy node count indicates the number of nodes. OccNodeCnt[dpth] indicates the number of nodes at depth.
[0327] The occupancy tree nodes with node index at depth differ in occupancy index. occupancy_idx_difference indicates the transformed value of the geometric quadratic residual transform.
[0328] Fig. 20 A prediction tree according to an embodiment is illustrated.
[0329] Fig. 20 Examples include Fig.14 Prediction tree in the geometric structure of the bitstream.
[0330] According to an embodiment, the secondary residual transform coding structure information can be added to Fig.14 The prediction tree of the Geom in is signaled. The prediction tree follows the prediction tree syntax according to the GPCC standard.
[0331] The prediction tree includes prediction tree nodes corresponding to the node numbers. The prediction tree nodes indexed by the node at the depth convey prediction tree residual information.
[0332] The prediction tree node count (PtnCnt) counts the nodes parsed from the bitstream.
[0333] ptree_end_of_slice indicates whether there are consecutive prediction trees in the data unit.
[0334] ptn_residual_difference indicates the transformation value of the geometric quadratic residual transformation.
[0335] ptn_child_cnt_xor1[nodeIdx]xor 1 indicates the number of child nodes.
[0336] Fig.21 An attribute data unit and an attribute data unit header according to an embodiment are illustrated.
[0337] Fig.21 Examples include Fig.14 The attribute data unit and the attribute data unit header in the bit stream of Attr. The attribute data unit and the attribute data unit header follow the syntax of the attribute data unit and the attribute data unit header according to the GPCC standard. In addition, the secondary residual transform coding structure information syntax can be added to the data of Attr.
[0338] attr_coding_type indicates the attribute coding method. For example, in the value of attr_coding_type, 0 may indicate RAHT; 1 may indicate LoD using predictive transformation; Figure 2 The LoD using the lifting transformation can be indicated; Figure 3 The raw attribute data may be indicated.
[0339] When attr_coding_type is not 3, attribute_coeffs() may be passed.
[0340] The secondary residual transform coding structure information may be added to the slice header of Attr and signaled.
[0341] attr_secondary_residual_transform: Indicates whether the attribute compressor uses a secondary residual transform using the reference frame.
[0342] Fig. 22 Attribute coefficients according to embodiments are illustrated.
[0343] Fig. 22 Examples include Fig.14The attribute coefficients in the bitstream of . The attribute coefficients may follow the attribute syntax according to the GPCC standard. In addition, the secondary residual transform coding structure information may be added to the attribute_coeffs of Attr and signaled.
[0344] PointCnt: Indicates the cumulative count of decoded points.
[0345] AttrDim, AttrBitDepth and AttrMaxVal indicate the number, bit depth and maximum value of the components of the attribute identified by the attribute index. Decoding of the attribute data unit sets the attribute index. AttrDim:=attr_components_minus1[AttrIdx]+1
[0346] attr_components_minus1[attrIdx) plus 1 indicates the number of components of the identified attribute.
[0347] coeff_abs_difference: Indicates the transformed quadratic residual transform value of the attribute.
[0348] Fig.23 A method of transmitting point cloud data according to an embodiment is illustrated.
[0349] S2300: The point cloud data sending method according to an embodiment may include encoding the point cloud data.
[0350] The encoding operation according to the implementation may follow Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2 Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices Fig.11 Tree-based encoding, Fig.12 The transmitting device and the encoder, Figures 14 to 22 Bitstream generation, Fig.23 Description of the sending method, etc.
[0351] S2301: According to the implementation scheme, the point cloud data sending method may further include: sending a bit stream containing point cloud data.
[0352] The sending operation according to the implementation follows Figure 1 The sending device 10000, Figure 1 Point cloud video encoder 10002, Figure 1 Transmitter 10003, Figure 2 Acquisition 20000 / Encoding 20001 / Transmission 20002, Figure 3 The encoder, Figure 8 The sending device Fig.10 Devices Fig.12 The transmitting device and the encoder and Figures 14 to 22 The bit stream sending operation.
[0353] Fig.24 A method of receiving point cloud data according to an embodiment is illustrated.
[0354] S2400: According to an embodiment, the point cloud data receiving method may include: receiving a bit stream containing point cloud data.
[0355] The receiving operation according to the embodiment follows Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Send 20002-decode 20003-render 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices Fig.13 A receiving device and a decoder and Figures 14 to 22 The receiving operation of the bit stream.
[0356] S2401: According to the implementation scheme, the point cloud data receiving method may further include: decoding the point cloud data.
[0357] The decoding operation according to the embodiment follows Figure 1 The receiving device 10004, the receiver 10005, the point cloud video decoder 10006, Figure 2 Send 20002-decode 20003-render 20004, Figure 7 The decoder, Fig. 9 The receiving device Fig.10 Devices Fig.11 Decoding based on prediction trees, Fig.13 receiving device and decoder, Figures 14 to 22 Bitstream parsing, Fig.24 Description of the receiving method, etc.
[0358] Reference Figure 1 The sending method may include: encoding the point cloud data, and sending a bit stream containing the point cloud data.
[0359] Reference Fig.12 Regarding motion estimation, the sending method may further include: estimating global motion information or local motion information for the current frame based on a reference frame for the current frame containing point cloud data.
[0360] Reference Figure 11 to Figure 12 , with respect to the transformation of the residual through the occupancy tree, encoding the point cloud data may include: encoding the geometry of the point cloud data, and encoding the attributes of the point cloud data, wherein encoding the geometry may include: representing the geometry as a tree, the tree including at least one node and at least one child node of the at least one node; searching for neighbor nodes for the current node based on the tree; and calculating the occupancy index of the current node according to the occupancy bits associated with the tree. The occupancy tree or octree may include a parent (upper) node and a child (lower) node configured by subdividing the parent node from a root node to a leaf node. The point occupancy state of each node is represented as occupancy information.
[0361] Reference Figure 11 to Figure 12 , with respect to the transformation of the quadratic residual of the occupancy tree, the encoding of the geometry may include generating and transforming the difference between the occupancy index and a reference occupancy index for the occupancy index. The reference occupancy index may be calculated based on the occupancy bits of the tree of the reference frame of the current frame of the current node.
[0362] Reference Figure 11 to Figure 12 , with respect to the transformation of the prediction tree or the residual of the prediction tree, encoding the point cloud data may include encoding the geometry of the point cloud data, and encoding the attributes of the point cloud data. Encoding the geometry may include generating a prediction tree including a node containing the geometry and a child node for the node; generating a prediction value for the current node based on the prediction tree; and generating a residual between the geometry of the current node and the prediction value. Compared to the occupancy tree, the prediction tree is generated from root to leaf by finding the node (point) most similar to the current node and connecting it to the child node of the current node.
[0363] Prediction-based compression can be defined as a process of defining the vertex (point) to be compressed (e.g., a specific point in a point cloud set, including points used as parents, grandfathers, great-grandfathers, etc.) as children, defining the vertex (point) to be predicted as parents, and creating a parent-child relationship. For example, the root vertex is defined as the starting point of the compression of the prediction tree, and the children with the root as the parent are defined. In order to find the predicted value of the nth vertex, the predicted value with the highest similarity (i.e., minimizing the error, which is the difference) is found from the parents, grandfathers, and great-grandfathers of the nth vertex.
[0364] Reference Figure 11 to Figure 12 , with respect to a secondary transformation of a residual of the prediction tree, encoding the geometry may further include generating and transforming a difference between the residual and a reference residual for the residual, wherein the reference residual may be calculated based on a prediction tree of a reference frame of a current frame for a current node.
[0365] Reference Figure 11 to Figure 12, with respect to the secondary residual transform of the prediction / lifting transform, encoding the point cloud data may include encoding the geometry of the point cloud data, and encoding the attributes of the point cloud data, wherein encoding the attributes may include splitting, predicting, and updating the attributes, and generating and transforming the difference between the residual associated with the attribute according to the prediction mode and the residual generated by another mode. In addition to the difference between the inter-frame residuals, the difference between the residuals of the prediction modes may be generated and transformed to transmit the bitstream.
[0366] Reference Figures 14 to 17 , regarding parameters (signaling) such as SPS, TPS, GPS, and APS, the bitstream may contain a sequence parameter set including information indicating whether to generate a difference between a residual of a transformed geometry and information indicating whether to generate a difference between a residual of a transformed attribute. The bitstream may contain a tile parameter set including information indicating whether to generate a difference between a residual of a transformed geometry and information indicating whether to generate a difference between a residual of a transformed attribute. The bitstream may contain a geometry parameter set including information indicating whether to generate a difference between a residual of a transformed geometry and information indicating whether to generate a difference between a residual of a transformed attribute, or an attribute parameter set including information indicating whether to generate a difference between a residual of a transformed attribute.
[0367] Reference Figures 18 to 20 , with respect to a geometry data unit (GDU), a geometry data unit header (GDUH), an occupancy tree, and a prediction tree, a bitstream may include a geometry data unit, the geometry data unit including geometry tree type information. The geometry tree type information may include a first value indicating that geometry is encoded based on an occupancy tree and a second value indicating that attributes are encoded based on a prediction tree. The bitstream may include a geometry data unit header, the geometry data unit header including information indicating whether to generate and transform a difference between residuals of geometry. The bitstream may include a data unit. The data unit may include an occupancy tree having a value obtained by a difference between residuals of geometry. The data unit may include a prediction tree having a value obtained by a difference between residuals of geometry.
[0368] Reference Figure 21 to Figure 22, with respect to an attribute data unit (ADU), an attribute data unit header (ADUH), and an attribute coefficient (attr_coeff), a bitstream may include an attribute data unit including attribute coding type information including a first value indicating a region adaptive hierarchical transform (RAHT), a second value indicating a level of detail (LoD) using a prediction transform, a third value indicating a LoD using a lifting transform, and a fourth value indicating original attribute data. The bitstream may include an attribute data unit header or a data unit including information indicating whether to generate and transform a difference between residuals associated with an attribute, or including attribute coefficient information including a value obtained by transforming a difference between residuals associated with an attribute.
[0369] The point cloud data transmission method may be performed by a transmission device. The transmission device may include a memory and a processor. The processor may perform an encoding operation. In addition, referring to Fig.12 The sending device may include an encoder configured to encode point cloud data and a transmitter configured to send a bit stream containing the point cloud data.
[0370] The point cloud data transmitting device or the processor of the transmitting device may further include a motion compensator configured to estimate global motion information or local motion information for the current frame based on a reference frame for the current frame containing the point cloud data. The encoder may perform operations including encoding the geometry of the point cloud data and encoding the attributes of the point cloud data. Encoding the geometry may include representing the geometry as a tree including at least one node and at least one child node of at least one node, searching for neighbor nodes for the current node based on the tree, and calculating an occupancy index of the current node based on occupancy bits associated with the tree.
[0371] The receiving method corresponds to the reverse process of the point cloud data sending method. Fig.13 The receiving method may include receiving a bit stream containing point cloud data, and decoding the point cloud data.
[0372] Reference Fig.13 , decoding may include estimating global motion information or local motion information for the current frame based on a reference frame for the current frame containing the point cloud data, performing arithmetic decoding on the point cloud data, inversely transforming the difference between the residuals of the geometry of the point cloud data, and inversely transforming the difference between the residuals of the attributes of the point cloud data. The bitstream may include information indicating whether to generate and transform the difference between the residuals of the geometry, and information indicating whether to generate and transform the difference between the residuals of the attributes.
[0373] The receiving method may be performed by a receiving device. The receiving device may include a memory and a processor. The processor may perform a decoding operation. In addition, referring to Fig.13 The receiving device may include a receiver configured to receive a bit stream containing point cloud data and a decoder configured to decode the point cloud data.
[0374] The decoder or processor receives the bitstream and performs intra-frame or inter-frame decoding. For inter-frame decoding, it generates global or local motion estimation information and performs motion compensation. For geometry and / or attributes that are motion compensated between frames, the values obtained by the quadratic residual transform are inversely transformed to reconstruct the residual, similar to the sending side. The geometry and / or attributes are then reconstructed based on the residual. For geometry, the quadratic residual (the difference between the residuals) is inversely transformed based on the occupancy tree or prediction tree, and the geometry is decoded by summing the residuals. For attributes, the quadratic residual (the difference between the residuals) is inversely transformed based on the lifting / prediction technique, and the attributes are decoded by summing the residuals.
[0375] According to an embodiment, the compression efficiency of the geometry and attributes of the point cloud can be increased. Due to the entropy coding after the one-dimensional transformation, the existing geometry and attribute residuals have limitations in sufficiently reducing the residuals. According to an embodiment, the inter-frame compression efficiency can be improved by applying a secondary transformation according to the characteristics of the point cloud.
[0376] The operations according to the above-described embodiments may be performed by a sending device and / or a receiving device according to the embodiments. The sending / receiving device may include a sender / receiver configured to send / receive media data, a memory storing instructions (program code, algorithm, flow chart and / or data) for processing according to the embodiments, and a processor configured to control the operation of the sending / receiving device.
[0377] The embodiments have been described in terms of the method and / or the apparatus, and the description of the method and the description of the apparatus may be applied complementary to each other.
[0378] Although the drawings are described separately for simplicity, new embodiments can be designed by combining the embodiments shown in the corresponding figures. Designing a recording medium that can be read by a computer and records the program for executing the above-mentioned embodiments according to the needs of those skilled in the art also falls within the scope of the attached claims and their equivalents. The apparatus and method according to the embodiment may not be limited to the configuration and method of the above-mentioned embodiment. Various modifications can be made to the embodiment by selectively combining all or some of the embodiments. Although preferred embodiments are described with reference to the drawings, it will be understood by those skilled in the art that various modifications and changes can be made to the embodiment without departing from the spirit or scope of the present disclosure described in the attached claims. These modifications should not be understood separately from the technical ideas or viewpoints of the embodiments.
[0379] Various elements of the device of the embodiment can be implemented by hardware, software, firmware or a combination thereof. Various elements in the embodiment can be implemented by a single chip (e.g., a single hardware circuit). According to the embodiment, the components according to the embodiment can be implemented as separate chips respectively. According to the embodiment, at least one or more components of the device according to the embodiment may include one or more processors capable of executing one or more programs. One or more programs may execute any one or more operations / methods according to the embodiment or include instructions for executing them. The executable instructions for executing the method / operation of the device according to the embodiment 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 temporary CRM or other computer program product configured to be executed by one or more processors. In addition, the memory according to the embodiment can be used as not only covering volatile memory (e.g., RAM), but also covering the concepts of non-volatile memory, flash memory and PROM. In addition, it can also be implemented in the form of a carrier (e.g., transmission via the Internet). In addition, the processor-readable recording medium can be distributed to a computer system connected via a network so that the processor-readable code can be stored and executed in a distributed manner.
[0380] In the present disclosure, " / " and "," should be interpreted as indicating "and / or". For example, the expression "A / B" may mean "A and / or B". Furthermore, "A, B" may mean "A and / or B". Furthermore, "A / B / C" may mean "at least one of A, B, and / or C". In addition, "A / B / C" may mean "at least one of A, B, and / or C". Furthermore, in the present specification, the term "or" should be interpreted as indicating "and / or". For example, the expression "A or B" may mean 1) only A, 2) only B, or 3) both A and B. In other words, the term "or" used in this document should be interpreted as indicating "in addition or alternatively".
[0381] Terms such as first and second can be used to describe various elements of the embodiments. However, various components according to the embodiments should not be limited by the above terms. These terms are only used to distinguish one element from another element. For example, a first user input signal can be referred to as a second user input signal. Similarly, a second user input signal can be referred to as a first user input signal. The use of these terms should not be interpreted without departing from the scope of various embodiments. Both the first user input signal and the second user input signal are user input signals, but unless the context clearly stipulates otherwise, they do not mean the same user input signal.
[0382] 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, unless the context clearly stipulates otherwise, the singular form includes plural referents. The expression "and / or" is used to include all possible combinations of terms. Terms such as "including" or "having" are intended to indicate the presence of graphics, quantities, steps, elements and / or components, and should be understood as not excluding the possibility of additional presence of graphics, quantities, steps, elements and / or components. As used herein, conditional expressions such as "if" and "when" are not limited to optional situations, and are intended to perform related operations or interpret related definitions according to specific conditions when specific conditions are met.
[0383] The operations according to the embodiments described in this specification may be performed by a transmitting / receiving device including a memory and / or a processor according to the embodiments. The memory may store a program for processing / controlling operations according to the embodiments, and the processor may control the various operations described in this specification. The processor may be referred to as a controller, etc. In an embodiment, the operations may be performed by firmware, software, and / or a combination thereof. Firmware, software, and / or a combination thereof may be stored in a processor or a memory.
[0384] The operations according to the above-described embodiments may be performed by a sending device and / or a receiving device according to the embodiments. The sending / receiving device may include a sender / receiver configured to send and receive media data, a memory configured to store instructions (program code, algorithm, flow chart and / or data) for the process according to the embodiments, and a processor configured to control the operation of the sending / receiving device.
[0385] The processor may be referred to as a controller, etc., and may correspond to, for example, hardware, software, and / or a combination thereof. The operations according to the above-described embodiments may be performed by the processor. In addition, the processor may be implemented as an encoder / decoder for the operations of the above-described embodiments.
[0386] Invention Mode
[0387] As described above, relevant details are described in the best mode for carrying out the embodiment.
[0388] Industrial Applicability
[0389] As described above, the embodiments may be applied in whole or in part to a point cloud data transmitting / receiving device and system.
[0390] A skilled person can change or modify the embodiments in various ways within the scope of the embodiments.
[0391] The embodiments may include changes / modifications within the scope of the claims and their equivalents.
Claims
1. A method for sending point cloud data, the method comprising: Encode point cloud data; as well as A bitstream containing the point cloud data is sent.
2. The method according to claim 1, further comprising: According to a reference frame for a current frame including the point cloud data, global motion information or local motion information for the current frame is estimated.
3. The method according to claim 1, wherein: Encoding the point cloud data includes: encoding the geometry of the point cloud data; and Encoding the attributes of the point cloud data, Wherein, encoding the geometry comprises: representing the geometry as a tree, the tree comprising at least one node and at least one child node of the at least one node; Searching for neighbor nodes for the current node based on the tree; and An occupancy index of the current node is calculated based on occupancy bits associated with the tree.
4. The method according to claim 3, wherein: Encoding the geometry includes: generating and transforming a difference between the occupancy index and a reference occupancy index for the occupancy index, The reference occupancy index is calculated based on the occupancy bits of the tree of the reference frame of the current frame for the current node.
5. The method according to claim 1, wherein: Encoding the point cloud data includes: encoding the geometry of the point cloud data; and Encoding the attributes of the point cloud data, Wherein, encoding the geometry comprises: generating a prediction tree, the prediction tree comprising a node including the geometry and child nodes for the node; generating a prediction value for a current node based on the prediction tree; and A residual between the geometry of the current node and the predicted value is generated.
6. The method according to claim 5, wherein: Encoding the geometry further comprises: generating and transforming a difference between the residual and a reference residual for the residual, The reference residual is calculated based on the prediction tree of the reference frame of the current frame of the current node.
7. The method according to claim 1, wherein: Encoding the point cloud data includes: encoding the geometry of the point cloud data; and Encoding the attributes of the point cloud data, The encoding of the attribute comprises: splitting, predicting and updating said attributes; and A difference between a residual associated with the property according to a prediction mode and a residual generated by another mode is generated and transformed.
8. The method according to claim 1, wherein: The bitstream comprises: A sequence parameter set, the sequence parameter set comprising: Information indicating whether to generate and transform the difference between the residual geometry; and information indicating whether to generate a difference between the residuals of the transformed attribute; A tile parameter set, the tile parameter set comprising: information indicating whether to generate and transform the difference between the residuals of the geometry; and information indicating whether to generate and transform said difference between said residuals of said attributes; a geometry parameter set comprising information indicating whether to generate and transform said difference between said residuals of said geometry; or A property parameter set comprising information indicating whether to generate and transform the difference between the residuals of the property.
9. The method according to claim 1, wherein: The bitstream comprises: A geometry data unit, wherein the geometry data unit includes geometry tree type information, wherein the geometry tree type information includes: a first value indicating that the geometry is encoded based on an occupancy tree; and a second value indicating encoding of the attribute based on a prediction tree; a geometry data unit header including information indicating whether to generate a difference between a residual and a transformed geometry; A data unit comprising an occupancy tree or a prediction tree having values obtained by transforming the differences between the residuals of the geometry.
10. The method according to claim 1, wherein: The bitstream comprises: An attribute data unit, wherein the attribute data unit includes attribute encoding type information, and the attribute encoding type information includes: Indicating a first value of a region adaptive hierarchical transform, RAHT; A second value indicating a level of detail LoD utilizing a prediction transform; a third value indicating the LoD using a lifting transform, and a fourth value indicating raw attribute data; an attribute data unit header including information on whether to generate and transform differences between residuals associated with an attribute; or A data unit including attribute coefficient information including a value obtained by transforming the difference between the residuals associated with the attribute.
11. A device for transmitting point cloud data, the device comprising: an encoder configured to encode point cloud data; as well as A transmitter is configured to transmit a bit stream containing the point cloud data.
12. The device according to claim 11, further comprising: a motion compensator configured to estimate global motion information or local motion information for the current frame based on a reference frame for the current frame containing the point cloud data, The encoder performs operations including: encoding the geometry of the point cloud data; and Encoding the attributes of the point cloud data, Wherein, encoding the geometry comprises: representing the geometry as a tree, the tree comprising at least one node and at least one child node of the at least one node; Searching for neighbor nodes for the current node based on the tree; and An occupancy index of the current node is calculated based on occupancy bits associated with the tree.
13. A method for receiving point cloud data, the method comprising: receiving a bitstream containing point cloud data; as well as The point cloud data is decoded.
14. The method according to claim 13, wherein: The decoding includes: estimating global motion information or local motion information for the current frame based on a reference frame for the current frame containing the point cloud data; performing arithmetic decoding on the point cloud data; inverse transforming the difference between the residuals of the geometry of the point cloud data; and The difference between the residuals of the attributes of the inverse transform of the point cloud data, Wherein, the bit stream includes: information indicating whether to generate and transform the difference between the residuals of the geometry; and Information indicating whether to generate and transform the difference between the residuals of the attributes.
15. A device for receiving point cloud data, the device comprising: a receiver configured to receive a bitstream containing point cloud data; as well as A decoder is configured to decode the point cloud data.