Point cloud data encoding device, point cloud data encoding method, point cloud data decoding device, and point cloud data decoding method
Patent Information
- Application Number
- CN202580010911.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-22
- Filing Date
- 2025-01-22
- Publication Date
- 2026-08-18
AI Technical Summary
[0009]根据实施方式的装置和方法可高效地处理点云数据。
Smart Images

Figure CN122603361A_ABST
Abstract
Description
Technical Field
[0001] The embodiments relate to a method and apparatus for processing point cloud content. Background Technology
[0002] Point cloud content is content represented by point clouds, which are collections of points belonging to a coordinate system representing three-dimensional space. Point cloud content can represent media configured in three dimensions and is used to provide various services such as virtual reality (VR), augmented reality (AR), mixed reality (MR), and autonomous driving services. However, tens of thousands to hundreds of thousands of point data points are required to represent point cloud content. Therefore, an efficient method for processing large amounts of point data is needed. Summary of the Invention
[0003] Technical issues
[0004] The embodiments provide an apparatus and method for efficiently processing point cloud data. The embodiments also provide a point cloud data processing method and apparatus for addressing waiting time and encoding / decoding complexity.
[0005] The technical scope of the implementation is not limited to the above-described technical objectives, but can be extended to other technical objectives that can be inferred by those skilled in the art based on the entire content disclosed herein.
[0006] Technical solution
[0007] The decoding method according to the embodiments may include receiving a bitstream including point cloud data and decoding the point cloud data. The encoding method according to the embodiments may include encoding the point cloud data and transmitting a bitstream including 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 apparatus and method according to the embodiments can provide point cloud content for providing general services such as VR services and autonomous driving services. Attached Figure Description
[0012] The accompanying drawings are included to provide a further understanding of this disclosure and are incorporated into and constitute a part of this application. They illustrate embodiments of the disclosure and, together with this description, serve to illustrate the principles of the disclosure. For a better understanding of the various embodiments described below, reference should be made to the following description of 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 1An exemplary point cloud content delivery system according to an embodiment is shown; Figure 2 This is a block diagram illustrating the operation of providing point cloud content according to an embodiment; Figure 3 An exemplary point cloud encoder according to an implementation method is illustrated; Figure 4 An example of an octree and occupancy code according to an implementation is shown; Figure 5 An example of point configuration in each LOD according to the implementation method is illustrated; Figure 6 An example of point configuration in each LOD according to the implementation method is illustrated; Figure 7 An example of a point cloud decoder according to an implementation method is shown; Figure 8 An example of a transmitting device according to an embodiment is shown; Figure 9 An example of a receiving device according to an embodiment is shown; Figure 10 An exemplary structure that can be operated in conjunction with a point cloud data transmission / reception method / apparatus according to an embodiment is illustrated; Figure 11 An example of a rotating light detection and ranging (LiDAR) model according to an embodiment is shown; Figure 12 An encoding device according to an embodiment is illustrated; Figure 13 An example of a decoding apparatus according to an embodiment is shown; Figure 14 An example of a reference frame generation method according to an implementation method is shown; Figure 15 An example of a reference frame generation method according to an implementation method is shown; Figure 16 An example of a reference frame generation method according to an implementation method is shown; Figure 17 A bitstream according to an implementation method is illustrated; Figure 18 An example is shown of a sequence parameter set (SPS) in a bitstream according to an implementation method; Figure 19 An example of a set of geometric parameters (GPS) in a bitstream according to an implementation method is shown; Figure 20 An example of an attribute parameter set (APS) in a bitstream according to an implementation method is shown. Figure 21 An example of a block parameter set (TPS) in a bitstream according to an implementation method is shown; Figure 22An example of a geometric slice header (GSH) in a bitstream according to an implementation method is shown. Figure 23 An example is shown of the attribute slice header (ASH) in a bitstream according to an implementation method; Figure 24 An example of an encoding method according to an implementation method is shown; Figure 25 A decoding method according to an embodiment is illustrated. Detailed Implementation
[0014] Preferred embodiments of the present disclosure will now be described in detail, examples of which are illustrated in the accompanying drawings. The detailed description given below with reference to the drawings is intended to illustrate exemplary embodiments of the present disclosure, and not to show 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.
[0015] Although most of the terms used in this disclosure are selected from commonly used terms in the art, some terms have been arbitrarily chosen by the applicant and their meanings are explained in detail in the following description as needed. Therefore, this disclosure should be understood based on the intended meaning of the terms rather than their simple names or meanings.
[0016] Figure 1 An exemplary point cloud content delivery system according to an implementation is shown.
[0017] 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 are capable of transmitting and receiving point cloud data via wired or wireless communication.
[0018] The point cloud data transmission device 10000 according to an embodiment can acquire and process point cloud video (or point cloud content) and transmit it. According to an embodiment, the transmission 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 transmission device 10000 may include devices configured to communicate with base stations and / or other wireless devices using radio access technologies (e.g., 5G New RAT (NR), Long Term Evolution (LTE)), robots, vehicles, AR / VR / XR devices, portable devices, home appliances, Internet of Things (IoT) devices, and AI devices / servers.
[0019] The transmitting device 10000 according to the embodiment includes a point cloud video acquirer 10001, a point cloud video encoder 10002 and / or a transmitter (or communication module) 10003.
[0020] The point cloud video acquirer 10001 according to an embodiment acquires point cloud video through processing procedures such as capture, synthesis, or generation. Point cloud video is point cloud content represented by a point cloud, which is a set of points located in 3D space, and may be referred to as point cloud video data, point cloud data, etc. The point cloud video according to an embodiment may include one or more frames. A frame represents a still image / scene. Therefore, point cloud video may include point cloud images / frames / scenes, and may be referred to as point cloud images, frames, or scenes.
[0021] The point cloud video encoder 10002 according to an embodiment encodes the acquired point cloud video data. The point cloud video encoder 10002 may encode the point cloud video data based on point cloud compression coding. The point cloud compression coding according to an embodiment may include geometry-based point cloud compression (G-PCC) coding and / or video-based point cloud compression (V-PCC) coding or next-generation coding. The point cloud compression coding according to an embodiment is not limited to the above embodiments. The point cloud video encoder 10002 may output a bitstream containing the encoded point cloud video data. The bitstream may contain not only the encoded point cloud video data but also signaling information related to the encoding of the point cloud video data.
[0022] According to an embodiment, transmitter 10003 transmits a bitstream containing encoded point cloud video data. The bitstream, according to an embodiment, is encapsulated in a file or segment (e.g., a streaming segment) and transmitted via various networks such as broadcast networks and / or broadband networks. Although not shown in the figures, transmitting device 10000 may include an encapsulator (or encapsulation module) configured to perform encapsulation operations. According to an embodiment, the encapsulator may be included in transmitter 10003. According to an embodiment, the file or segment may be transmitted via a network to receiving device 10004 or stored in a digital storage medium (e.g., USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.). Transmitter 10003 according to an embodiment is capable of wired / wireless communication with receiving device 10004 (or receiver 10005) via networks such as 4G, 5G, and 6G. Additionally, the transmitter may perform necessary data processing operations depending on the network system (e.g., a 4G, 5G, or 6G communication network system). Transmitting device 10000 can transmit encapsulated data on demand.
[0023] 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 devices, robots, vehicles, AR / VR / XR devices, portable devices, home appliances, Internet of Things (IoT) devices, and AI devices / servers configured to communicate with base stations and / or other wireless devices using radio access technologies (e.g., 5G New RAT (NR), Long Term Evolution (LTE)).
[0024] According to an embodiment, receiver 10005 receives a bitstream containing point cloud video data or a file / segment encapsulated with a bitstream from a network or storage medium. Receiver 10005 may perform necessary data processing according to the network system (e.g., a communication network system such as 4G, 5G, 6G, etc.). According to an embodiment, receiver 10005 may decapsulate the received file / segment and output a bitstream. According to an embodiment, receiver 10005 may include a decapsulator (or decapsulator module) configured to perform a decapsulation operation. The decapsulator may be implemented as a separate element (or component) from receiver 10005.
[0025] The point cloud video decoder 10006 decodes the bitstream containing 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 (e.g., 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). Point cloud decompression encoding includes G-PCC encoding.
[0026] Renderer 10007 renders decoded point cloud video data. Renderer 10007 can output point cloud content by rendering not only the point cloud video data but also the audio data. According to one embodiment, renderer 10007 may include a display configured to display the point cloud content. According to another embodiment, the display may be implemented as a separate device or component rather than included in renderer 10007.
[0027] The arrows indicated by dashed lines in the diagram represent the transmission paths of the feedback information acquired by the receiving device 10004. The feedback information reflects the interactivity of the user consuming the point cloud content and includes information about the user (e.g., head orientation information, viewport information, etc.). Specifically, when the point cloud content is for a service requiring user interaction (e.g., autonomous driving services, etc.), the feedback information may be provided to the content sender (e.g., the sending device 10000) and / or the service provider. Depending on the implementation, the feedback information may be used in both the receiving device 10004 and the sending device 10000, or it may not be provided.
[0028] According to the embodiment, head orientation information is information about the user's head position, orientation, angle, movement, etc. The receiving device 10004 according to the embodiment can calculate viewport information based on the head orientation information. The viewport information can be information about the area of the point cloud video that the user is viewing. The viewpoint is the point through which the user views the point cloud video, and can refer to the center point of the viewport area. That is, the viewport is the area centered on the viewpoint, and the size and shape of the area can be determined by the field of view (FOV). Therefore, in addition to head orientation information, the receiving device 10004 can also extract viewport information based on the vertical or horizontal FOV supported by the device. Furthermore, the receiving device 10004 performs gaze analysis, etc., to examine the way the user consumes the point cloud, the area the user gazes at in the point cloud video, the gaze duration, etc. According to the embodiment, the receiving device 10004 can send feedback information including the gaze analysis results to the transmitting device 10000. The feedback information according to the embodiment can be acquired during rendering and / or display. The feedback information according to the embodiment can be acquired by one or more sensors included in the receiving device 10004. According to the implementation method, the feedback information can be obtained by the renderer 10007 or by a separate external component (or device, component, etc.). Figure 1 The dashed lines in the diagram represent the process of sending feedback information obtained by the renderer 10007. The point cloud content providing system can process (encode / decode) point cloud data based on the feedback information. Therefore, the point cloud video data decoder 10006 can perform decoding operations based on the feedback information. The receiving device 10004 can send feedback information to the sending device 10000. The sending device 10000 (or the point cloud video data encoder 10002) can perform encoding operations based on the feedback information. Therefore, the point cloud content providing system can efficiently process necessary data (e.g., point cloud data corresponding to the user's head position) based on the feedback information instead of processing (encoding / decoding) the entire point cloud data, and provide point cloud content to the user.
[0029] According to the implementation, the transmitting device 10000 may be referred to as an encoder, transmitting device, transmitter, etc., and the receiving device 10004 may be referred to as a decoder, receiving device, receiver, etc.
[0030] According to the implementation method Figure 1 Point cloud data processed in a point cloud content provision system (through a series of processes including acquisition, encoding, transmission, decoding, and rendering) can be referred to as point cloud content data or point cloud video data. Depending on the implementation, point cloud content data can be used as a concept encompassing metadata or signaling information related to point cloud data.
[0031] Figure 1 The components of the point cloud content provided by the system can be implemented by hardware, software, processors, and / or combinations thereof.
[0032] Figure 2 This is a block diagram illustrating the operation of providing point cloud content according to an embodiment.
[0033] Figure 2 The block diagram shows Figure 1 The operation of the point cloud content providing system described herein. As mentioned above, the point cloud content providing system can process point cloud data based on point cloud compression encoding (e.g., G-PCC).
[0034] A point cloud content providing system according to an embodiment (e.g., point cloud sending device 10000 or point cloud video acquirer 10001) can acquire point cloud video (20000). The point cloud video is represented by a point cloud belonging to a coordinate system used to represent 3D space. The point cloud video according to an embodiment may include Ply (Polygon file format or Stanford Triangle format) files. When the point cloud video has one or more frames, the acquired point cloud video may include one or more Ply files. The Ply file contains point cloud data such as point geometry and / or attributes. Geometry includes the position of the points. The position of each point may be represented by parameters (e.g., values 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 the attributes of the points (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 the implementation, geometry can be referred to as location, geometric information, geometric data, location information, location data, etc., and attributes can be referred to as attributes, attribute information, attribute data, etc. A point cloud content providing system (e.g., point cloud sending device 10000 or point cloud video acquirer 10001) can obtain point cloud data from information related to the point cloud video acquisition process (e.g., depth information, color information, etc.).
[0035] A point cloud content providing system (e.g., a transmitting device 10000 or a point cloud video encoder 10002) according to an embodiment can encode point cloud data (20001). The point cloud content providing system can encode point cloud data based on point cloud compression encoding. As described above, point cloud data can include geometric information and attribute information about points. Therefore, the point cloud content providing system can perform geometric encoding to encode the geometry and output a geometric bitstream. The point cloud content providing system can perform attribute encoding to encode attributes and output an attribute bitstream. According to an embodiment, the point cloud content providing system can perform attribute encoding based on geometric encoding. The geometric bitstream and attribute bitstream according to an embodiment can be multiplexed and output as a single bitstream. The bitstream according to an embodiment may also contain signaling information related to geometric encoding and attribute encoding.
[0036] A point cloud content providing system (e.g., transmitting device 10000 or transmitter 10003) according to an embodiment can transmit encoded point cloud data (20002). Figure 1 As shown, encoded point cloud data can be represented by geometric bitstreams and attribute bitstreams. Additionally, the encoded point cloud data can be transmitted as a bitstream along with signaling information related to the encoding of the point cloud data (e.g., signaling information related to geometric encoding and attribute encoding). The point cloud content providing system can encapsulate the bitstream carrying the encoded point cloud data and transmit it as a file or fragment.
[0037] The point cloud content providing system (e.g., receiving device 10004 or receiver 10005) according to the embodiment can receive a bitstream containing encoded point cloud data. Additionally, the point cloud content providing system (e.g., receiving device 10004 or receiver 10005) can demultiplex the bitstream.
[0038] A point cloud content providing system (e.g., receiving device 10004 or point cloud video decoder 10005) can decode encoded point cloud data (e.g., geometric bitstream, attribute bitstream) transmitted in a bitstream. The point cloud content providing system (e.g., receiving device 10004 or point cloud video decoder 10005) can decode point cloud video data based on signaling information related to the encoding of the point cloud video data contained in the bitstream. The point cloud content providing system (e.g., receiving device 10004 or point cloud video decoder 10005) can decode the geometric bitstream to reconstruct the location (geometry) of the points. The point cloud content providing system can reconstruct the attributes of the points by decoding the attribute bitstream based on the reconstructed geometry. The point cloud content providing system (e.g., receiving device 10004 or point cloud video decoder 10005) can reconstruct point cloud video based on location according to the reconstructed geometry and the decoded attributes.
[0039] A point cloud content providing system (e.g., receiving device 10004 or renderer 10007) according to an embodiment can render decoded point cloud data (20004). The point cloud content providing system (e.g., receiving device 10004 or renderer 10007) can use various rendering methods to render the geometry and attributes decoded through the decoding process. Points in the point cloud content can be rendered as vertices with a specific thickness, cubes with a specific minimum size centered at the corresponding vertex position, or circles centered at the corresponding vertex position. All or part of the rendered point cloud content is provided to the user through a display (e.g., a VR / AR display, a general display, etc.).
[0040] The point cloud content providing system (e.g., receiving device 10004) according to the embodiment can acquire feedback information (20005). The point cloud content providing system can encode and / or decode point cloud data based on the feedback information. The feedback information and operation / reference of the point cloud content providing system according to the embodiment... Figure 1 The feedback information and operation described are the same, so their detailed description is omitted.
[0041] Figure 3 An exemplary point cloud encoder according to an implementation is shown.
[0042] 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., point locations and / or attributes) to adjust the quality of the point cloud content (e.g., lossless, lossy, or near-lossless) based on network conditions or applications. When the total size of the point cloud content is large (e.g., providing 60 Gbps of point cloud content for 30 fps), the point cloud content providing system may not be able to stream the content in real time. Therefore, the point cloud content providing system can reconstruct the point cloud content based on a maximum target bitrate to provide the point cloud content according to network conditions, etc.
[0043] For reference Figure 1 and Figure 2 As described, the point cloud encoder can perform geometric encoding and attribute encoding. Geometric encoding is performed before attribute encoding.
[0044] The point cloud encoder according to the implementation includes a coordinate transformer (transform coordinates) 30000, a quantizer (quantize and remove points (voxarization)) 30001, an octree analyzer (analyze octrees) 30002, a surface approximation analyzer (analyze surface approximations) 30003, an arithmetic encoder (arithmetic encoding) 30004, a geometry reconstructor (reconstruct geometry) 30005, a color transformer (transform colors) 30006, an attribute transformer (transform attributes) 30007, a RAHT transformer (RAHT) 30008, an LOD generator (generate LODs) 30009, a lift transformer (lift) 30010, a coefficient quantizer (quantize coefficients) 30011, and / or an arithmetic encoder (arithmetic encoding) 30012.
[0045] The coordinate transformer 30000, quantizer 30001, octree analyzer 30002, surface approximation analyzer 30003, arithmetic encoder 30004, and geometric reconstructor 30005 are capable of performing geometric coding. Geometric coding according to the implementation may include octree geometric coding, prediction tree geometric coding, direct coding, triplet geometric coding, and entropy coding. Direct coding and triplet geometric coding are applied selectively or in combination. Geometric coding is not limited to the examples described above.
[0046] 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 three-dimensional space (e.g., three-dimensional space represented by the XYZ coordinate system). The position information in three-dimensional space according to the embodiment can be referred to as geometric information.
[0047] The quantizer 30001 according to the embodiment quantizes geometry. For example, the quantizer 30001 may quantize 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: multiplying the difference between the minimum position value and the position value of each point by a preset quantization scaling value, and then finding the nearest integer value by rounding the value obtained by multiplication. Thus, 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 points. As in the case of pixels (the smallest unit containing 2D image / video information), points in the point cloud content (or 3D point cloud video) according to the embodiment may be included in one or more voxels. As a combination of volume and pixel, the term voxel refers to the 3D cubic space generated when 3D space is divided into units (unit = 1.0) based on axes representing 3D space (e.g., X-axis, Y-axis, and Z-axis). The quantizer 30001 allows a group of points in 3D space to be matched with voxels. In one embodiment, a voxel may include only one point. In another embodiment, a voxel may include one or more points. To represent a voxel as a point, the location of the voxel's center can be set based on the locations of one or more points included in the voxel. In this case, attributes of all locations included in a voxel can be combined and assigned to the voxel.
[0048] The octree analyzer 30002 according to the implementation performs octree geometric encoding (or octree coding) to represent voxels in an octree structure. The octree structure represents points based on the matching of octree structures with voxels.
[0049] The surface approximation analyzer 30003 according to the embodiment can analyze and approximate an octree. The octree analysis and approximation according to the embodiment is a process of analyzing a region containing multiple points to efficiently provide an octree and voxelization.
[0050] The arithmetic encoder 30004 according to the embodiment performs entropy encoding on octrees and / or approximate octrees. For example, the encoding scheme includes arithmetic encoding. As a result of the encoding, a geometric bitstream is generated.
[0051] The attribute encoding is performed by a color transformer 30006, an attribute transformer 30007, a RAHT transformer 30008, a LOD generator 30009, a boosting transformer 30010, a coefficient quantizer 30011, and / or an arithmetic encoder 30012. As described above, a point may have one or more attributes. The attribute encoding according to the embodiments is also applied to the attributes possessed by a point. However, when an attribute (e.g., color) comprises one or more elements, attribute encoding is applied independently to each element. The attribute encoding according to the embodiments includes color transformation encoding, attribute transformation encoding, region adaptive hierarchical transformation (RAHT) encoding, interpolation-based hierarchical nearest neighbor prediction (prediction transformation) encoding, and interpolation-based hierarchical nearest neighbor prediction (boosting transformation) encoding with update / boosting steps. Depending on the point cloud content, the above-described RAHT encoding, prediction transformation encoding, and boosting transformation encoding may be used selectively, or a combination of one or more encoding schemes may be used. The attribute encoding according to the embodiments is not limited to the examples described above.
[0052] The color converter 30006 according to the embodiment performs color transformation encoding that transforms the color values (or textures) included in the attributes. For example, the color converter 30006 can transform the format of color information (e.g., from RGB to YCbCr). Optionally, the operation of the color converter 30006 according to the embodiment can be applied based on the color values included in the attributes.
[0053] The geometry reconstructor 30005, according to the implementation method, reconstructs (decompresses) octrees and / or approximate octrees. The geometry reconstructor 30005 reconstructs the octree / voxel based on the results of analyzing the point distribution. The reconstructed octree / voxel can be referred to as the reconstructed geometry (restored geometry).
[0054] The attribute transformer 30007 according to the embodiment performs attribute transformation to transform attributes based on reconstructed geometry and / or positions without performing geometric encoding. As described above, since attributes depend on geometry, the attribute transformer 30007 can transform attributes based on reconstructed geometric information. For example, based on the position value of a point included in a voxel, the attribute transformer 30007 can transform the attributes of the point at that position. As described above, when the center position of a voxel is set based on the positions of one or more points included in the voxel, the attribute transformer 30007 transforms the attributes of one or more points. When performing triadic geometric encoding, the attribute transformer 30007 can transform attributes based on the triadic geometric encoding.
[0055] The attribute transformer 30007 performs attribute transformation by calculating the average of the attributes or attribute values (e.g., color or reflectivity of each point) of neighboring points within a specific location / radius from the center (or location value) of each voxel. The attribute transformer 30007 can apply weights based on the distance from the center to each point when calculating the average. Therefore, each voxel has a location and a calculated attribute (or attribute value).
[0056] The attribute transformer 30007 can search for nearest neighbor points within a specific location / radius of the center of each voxel based on a KD-tree or Morton code. A KD-tree is a binary search tree and supports a data structure that allows points to be managed based on location, enabling fast nearest neighbor search (NNS). Morton codes are generated by representing the coordinates (e.g., (x, y, z)) of the 3D location of all points as bit values and mixing the bits. For example, when the coordinates representing the point location are (5, 9, 1), the bit values are (0101, 1001, 0001). Mixing the bit values according to the bit index in the order of z, y, and x produces 010001000111. This value is represented as the decimal number 1095. That is, the Morton code value for the point with coordinates (5, 9, 1) is 1095. The attribute transformer 30007 can sort the points based on the Morton code values and perform NNS using a depth-first traversal process. After an attribute transformation operation, use a KD tree or Morton code when an NNS is needed in another transformation process used for attribute encoding.
[0057] As shown in the figure, the transformation properties are input to the RAHT transformer 30008 and / or the LOD generator 30009.
[0058] According to the implementation, the RAHT transformer 30008 performs RAHT encoding for predicting attribute information based on the reconstructed geometric information. For example, the RAHT transformer 30008 can predict the attribute information of higher-level nodes in an octree based on the attribute information associated with lower-level nodes in the octree.
[0059] The LOD generator 30009 according to the embodiment generates a Level of Detail (LOD) to perform predictive transform coding. The LOD according to the embodiment represents the level of detail of the point cloud content. As the LOD value decreases, it indicates a deterioration in the detail of the point cloud content. As the LOD value increases, it indicates an enhancement in the detail of the point cloud content. Points can be classified according to LOD.
[0060] The lift transformer 30010 according to the embodiment performs lift transform coding to transform point cloud attributes based on weights. As described above, lift transform coding may optionally be applied.
[0061] According to the implementation method, the coefficient quantizer 30011 quantizes the attribute encoding based on the coefficient.
[0062] According to the implementation method, the arithmetic encoder 30012 encodes quantized attributes based on arithmetic coding.
[0063] Although not shown in the figure, Figure 3 The elements of the point cloud encoder can be implemented by hardware, software, firmware, or a combination thereof, including one or more processors or integrated circuits configured to communicate with one or more memories included in the point cloud providing device. One or more processors can perform the above-described... Figure 3 At least one of the operation and / or functions of the elements of the point cloud encoder. Additionally, one or more processors are operable or perform operations for executing... Figure 3 The software program and / or instruction set for the operation and / or function of the elements of the point cloud encoder. One or more memories according to the 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).
[0064] Figure 4 An example of an octree and occupancy code according to an implementation is shown.
[0065] For reference Figures 1 to 3 As described, the point cloud content delivery system (point cloud video encoder 10002) or point cloud encoder (e.g., octree analyzer 30002) performs octree geometric encoding (or octree encoding) based on an octree structure to efficiently manage the regions and / or locations of voxels.
[0066] Figure 4 The upper part shows an octree structure. The 3D space of the point cloud content according to the embodiment is represented by the axes of a coordinate system (e.g., the X, Y, and Z axes). This is achieved by two poles (0, 0, 0) and (2... d , 2 d , 2 d An octree structure is created by recursively subdividing the bounding box aligned to the cubic axis. Here, 2d can be set as the value of the minimum bounding box that constitutes all points surrounding the point cloud content (or point cloud video). Here, d represents the depth of the octree. The value of d is determined in the following formula. In the following formula, (x int n , y int n , z int n ) indicates the position (or position value) of the quantized point.
[0067] d=Ceil(Log2(Max(x_n^int,y_n^int,z_n^in,n=1,…,N)+1))
[0068] like Figure 4 As shown in the upper center, the entire 3D space can be divided into eight spaces according to partitions. Each partitioned space is represented by a cube with six faces. For example... Figure 4 As shown in the upper right, each of the eight spaces is further subdivided based on a coordinate system axis (e.g., the X, Y, and Z axes). Thus, each space is divided into eight smaller spaces. These smaller spaces are also represented by cubes with six faces. This partitioning scheme is applied until the leaf nodes of the octree become voxels.
[0069] Figure 4 The lower part shows the octet occupancy code. The occupancy code generates the octet to indicate whether each of the eight partitions generated by dividing a space contains at least one node. Therefore, a single occupancy code is represented by eight child nodes. Each child node represents the occupancy of a partitioned space, and each child node has a 1-bit value. Therefore, the occupancy code is represented as an 8-bit code. That is, when the space corresponding to a child node contains at least one node, the node is assigned a value of 1. When the space corresponding to a child node does not contain a node (the space is empty), the node is assigned a value of 0. Since... Figure 4 The occupancy code shown is 00100001, thus indicating that the spaces corresponding to the third and eighth child nodes among the eight child nodes each contain at least one point. As shown, each of the third and eighth child nodes has eight child nodes, and the child nodes are represented by an 8-bit occupancy code. The attached figure shows that the occupancy code for the third child node is 10000111, and the occupancy code for the eighth child node is 01001111. A point cloud encoder (e.g., an arithmetic encoder 30004) according to an embodiment can perform entropy encoding on the occupancy code. To increase compression efficiency, the point cloud encoder can perform intra-frame / inter-frame encoding on the occupancy code. A receiving device (e.g., receiving device 10004 or point cloud video decoder 10006) according to an embodiment reconstructs the octree based on the occupancy code.
[0070] A point cloud encoder according to an implementation method (e.g., Figure 4 A point cloud encoder or octree analyzer (30002) can perform voxelization and octree encoding to store point locations. However, points are not always uniformly distributed in 3D space, so there may be specific regions with fewer points. Therefore, performing voxelization over the entire 3D space is inefficient. For example, when a specific region contains very few points, voxelization is not necessary in that specific region.
[0071] Therefore, for the aforementioned specific region (or nodes other than the leaf nodes of the octree), the point cloud encoder according to the embodiment can skip voxelization and perform direct encoding to directly encode the point positions included in the specific region. The coordinates of the directly encoded points according to the embodiment are called the Direct Encoding Mode (DCM). The point cloud encoder according to the embodiment can also perform triadic geometry encoding based on the surface model, which reconstructs the point positions in the specific region (or node) based on voxels. Triadic geometry encoding is a geometric 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 triadic geometry encoding according to the embodiment can be performed selectively. In addition, direct encoding and triadic geometry encoding according to the embodiment can be performed in combination with octree geometry encoding (or octree encoding).
[0072] To perform direct encoding, the option to apply direct encoding using direct mode should be enabled. The node to which direct encoding is applied must not be a leaf node, and there should be fewer than a threshold number of points within that node. Furthermore, the total number of points to which direct encoding is applied should not exceed a preset threshold. When the above conditions are met, the point cloud encoder (or arithmetic encoder 30004) according to the implementation method can perform entropy encoding on the point locations (or location values).
[0073] A point cloud encoder according to an embodiment (e.g., a surface approximation analyzer 30003) can determine a specific level of the octree (a level less than the depth d of the octree) and can start using a surface model from that level to perform triadic geometry encoding to reconstruct the point locations in the node region based on voxels (triadic mode). The point cloud encoder according to an embodiment can specify the level to which triadic 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 triadic mode. In other words, the point cloud encoder according to an embodiment can operate in triadic mode only when the specified level is less than the depth value of the octree. The 3D cubic region of a node at a specified level according to an embodiment is called a block. A block may include one or more voxels. A block or voxel may correspond to a cube. Geometry is represented as surfaces within each block. A surface according to an embodiment may intersect each edge of a block at most once.
[0074] A block has 12 edges, therefore a block contains at least 12 intersections. Each intersection is called a vertex. Vertices along an edge are detected when there is at least one occupied voxel adjacent to the edge in all blocks sharing the edge. An occupied voxel, according to the implementation, refers to a voxel containing a point. The vertex position detected along an edge is the average position of the edges of all voxels adjacent to the edge in all blocks sharing the edge.
[0075] Once a vertex is detected, the point cloud encoder according to the implementation can perform entropy encoding on the edge's origin (x, y, z), the edge's direction vector (Δx, Δy, Δz), and the vertex position value (relative position value within the edge). When applying triad geometry encoding, the point cloud encoder according to the implementation (e.g., geometry reconstructor 30005) can generate the restored geometry (reconstructed geometry) by performing triangle reconstruction, upsampling, and voxelization processes.
[0076] Vertices located at the edges of a block determine the surface passing through the block. The surface, according to the implementation, is a non-planar polygon. During triangle reconstruction, the surface represented by triangles is reconstructed based on the origin of the edges, the direction vectors of the edges, and the position values of the vertices. The triangle reconstruction process is performed as follows: i) calculating the centroid value of each vertex, ii) subtracting the centroid value from each vertex value, and iii) estimating the sum of squares of the values obtained through the subtraction.
[0077]
[0078] Estimate the minimum value of the sum and perform a projection process based on the axis with the minimum value. For example, when element x is minimum, each vertex is projected onto the x-axis relative to the center of the block, and onto the (y, z) plane. When the value obtained by the projection onto the (y, z) plane is (ai, bi), the value of θ is estimated by atan2(bi, ai), and the vertices are sorted based on the value of θ. The following shows the vertex combinations for creating triangles based on the number of vertices. Vertices are sorted from 1 to n. The following shows that for four vertices, two triangles can be constructed based on vertex combinations. The first triangle can be composed of vertices 1, 2, and 3 from the sorted vertices, and the second triangle can be composed of vertices 3, 4, and 1 from the sorted vertices.
[0079] Table 2-1. Triangles formed from vertices sorted by 1, ..., n
[0080] n triangle
[0081] 3 (1,2,3)
[0082] 4 (1,2,3), (3,4,1)
[0083] 5 (1,2,3), (3,4,5), (5,1,3)
[0084] 6 (1,2,3), (3,4,5), (5,6,1), (1,3,5)
[0085] 7 (1,2,3), (3,4,5), (5,6,7), (7,1,3), (3,5,7)
[0086] 8 (1,2,3), (3,4,5), (5,6,7), (7,8,1), (1,3,5), (5,7,1)
[0087] 9 (1,2,3), (3,4,5), (5,6,7), (7,8,9), (9,1,3), (3,5,7), (7,9,3)
[0088] 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)
[0089] 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)
[0090] 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)
[0091] An upsampling process is performed to add points along the edges of the triangle at the center, and voxelization is then performed. The added points are generated based on the upsampling factor and the width of the block. The added points are called thinned vertices. A point cloud encoder according to an implementation can voxelize the thinned vertices. Additionally, the point cloud encoder can perform attribute encoding based on the voxelized positions (or position values).
[0092] Figure 5 Examples of point configurations in various Levels of Detail (LODs) according to implementation methods are shown.
[0093] For reference Figures 1 to 4 The described approach involves reconstructing (decompressing) the encoded geometry before performing attribute encoding. When direct encoding is applied, the geometry reconstruction operation may include altering the placement of directly encoded points (e.g., placing directly encoded points in front of the point cloud data). When triadic geometry encoding is applied, the geometry reconstruction process is performed through triangle reconstruction, upsampling, and voxelization. Since attributes depend on geometry, attribute encoding is performed based on the reconstructed geometry.
[0094] A point cloud encoder (e.g., LOD generator 30009) can classify (or reorganize) points according to LOD. The figure shows the point cloud content corresponding to LOD. The leftmost view in the figure represents the original point cloud content. The second view from the left in the figure represents the point distribution in the lowest LOD, and the rightmost view represents the point distribution in the highest LOD. That is, points are sparsely distributed in the lowest LOD and densely distributed in the highest LOD. In other words, as the LOD increases in the direction indicated by the arrow at the bottom of the figure, the space (or distance) between points narrows.
[0095] Figure 6 An example of point configuration for each LOD according to an implementation method is shown.
[0096] For reference Figures 1 to 5 As described, a point cloud content providing system or point cloud encoder (e.g., point cloud video encoder 10002, Figure 3 A point cloud encoder or LOD generator (30009) can generate LODs. LODs are generated by reorganizing points into a set of refined levels based on a set of LOD distance values (or a set of Euclidean distances). The LOD generation process is performed not only by the point cloud encoder but also by the point cloud decoder.
[0097] Figure 6 The upper part shows examples of points (P0 to P9) of point cloud content distributed in 3D space. Figure 6 In this context, the original order represents the order of points P0 to P9 before LOD generation. Figure 6 In this context, LOD-based order represents the order in which points are generated according to their LOD. Points are reorganized by LOD. Additionally, higher LODs include points belonging to lower LODs. For example... 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.
[0098] For reference Figure 3 As described, the point cloud encoder according to the implementation can selectively or in combination perform predictive transform coding, lifting transform coding, and RAHT transform coding.
[0099] The point cloud encoder according to the embodiment can generate predictors for points to perform predictive transformation encoding for setting the predictive attributes (or predictive attribute values) of each point. That is, N predictors can be generated for N points. The predictors according to the embodiment can calculate weights (=1 / distance) based on the LOD value of each point, index information of neighboring points existing within a set distance of each LOD, and the distance to the neighboring points.
[0100] According to the implementation, the predicted attribute (or attribute value) is set as the average of the values obtained by multiplying the attributes (or attribute values) of neighboring points (e.g., color, reflectivity, etc.) set in the predictor of each point by a 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 implementation can quantize and inverse quantize the residuals (which may be referred to as residual attributes, residual attribute values, or attribute prediction residuals, or attribute residuals) 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 table below.
[0101] Table. Pseudocode for Attribute Prediction Residual Quantization
[0102] int PCCQuantization(int value, int quantStep) {
[0103] if (value >= 0) {
[0104] return floor(value / quantStep + 1.0 / 3.0);
[0105] } else {
[0106] return -floor(-value / quantStep + 1.0 / 3.0);
[0107] }
[0108] }
[0109] Table. Pseudocode for inverse quantization of attribute prediction residuals
[0110] int PCCInverseQuantization(int value, int quantStep) {
[0111] if (quantStep == 0) {
[0112] return value;
[0113] } else {
[0114] return value quantStep;
[0115] }
[0116] }
[0117] When the predictors of each point have neighboring points, the point cloud encoder (e.g., arithmetic encoder 30012) according to the embodiment can perform entropy encoding on the residual values of quantization and inverse quantization as described above. When the predictors of each point do not have neighboring points, the point cloud encoder (e.g., arithmetic encoder 30012) according to the embodiment can perform entropy encoding on the attributes of the corresponding point without performing the above operations.
[0118] The point cloud encoder (e.g., lift transformer 30010) according to the embodiment can generate predictors for each point, set the calculated LOD and register neighboring points in the predictors, and set weights based on the distance to the neighboring points to perform lift transform coding. The lift transform coding according to the embodiment is similar to the prediction transform coding described above, but the difference is that the weights are applied cumulatively to the attribute values. The process of cumulatively applying weights to the attribute values according to the embodiment is configured as follows.
[0119] 1) Create an array quantized weights (QW) to store the 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 neighboring nodes registered in the predictor by the weight of the current point's predictor, and add the values obtained by multiplication.
[0120] 2) Improve the prediction process: Subtract the value obtained by multiplying the attribute value of the point by the weight from the existing attribute value to calculate the predicted attribute value.
[0121] 3) Create temporary arrays called updateweight and update, and initialize the temporary arrays to zero.
[0122] 4) The weights calculated by multiplying the weights computed for all predictors by the weights stored in the QW corresponding to the predictor index are summed with the updateweight array and used as the index of the neighbor node. The values obtained by multiplying the attribute values of the neighbor node indexes by the calculated weights are summed with the update array.
[0123] 5) Improve the update process: Divide the attribute values of the update array of all predictors by the weight values of the updateweight array of the predictor index, and add the existing attribute values to the values obtained by division.
[0124] 6) For all predictors, the predicted attribute is calculated by multiplying the attribute value updated through the boosting update process by the weight updated through the boosting prediction process (stored in QW). The predicted attribute value is quantized by a point cloud encoder (e.g., coefficient quantizer 30011) according to the implementation. In addition, the point cloud encoder (e.g., arithmetic encoder 30012) performs entropy encoding on the quantized attribute value.
[0125] A point cloud encoder according to an embodiment (e.g., RAHT transformer 30008) can perform RAHT transform coding, where attributes associated with lower-level nodes in an octree are used to predict attributes of higher-level nodes. RAHT transform coding is an example of intra-frame attribute coding performed by scanning backward through an octree. The point cloud encoder according to an embodiment scans the entire region starting from voxels and repeats a merging process of merging voxels into larger blocks at each step until the root node is reached. The merging process according to the embodiment is performed only on occupied nodes. The merging process is not performed on empty nodes. The merging process is performed on the node directly above an empty node.
[0126] The following equation represents the RAHT transformation matrix. In this equation, Indicates level The average attribute value of the voxels. Based on and To calculate. and The weight is and .
[0127]
[0128] here, It is a low-pass value and is used in the next higher level of merging. This represents the high-pass coefficient. The high-pass coefficient at each step is quantized and subjected to entropy encoding (e.g., encoded by an arithmetic encoder 300012). Weights are calculated as follows: .pass and Create the root node as follows.
[0129]
[0130] The value of gDC is also quantized and subjected to entropy decoding, just like the high-pass coefficient.
[0131] Figure 7 A point cloud decoder according to an embodiment is shown.
[0132] Figure 7 The point cloud decoder shown is an example of a point cloud decoder and can perform decoding operations. Figures 1 to 6 The reverse process of the encoding operation of the point cloud encoder is shown.
[0133] For reference Figure and As described, the point cloud decoder can perform geometry decoding and attribute decoding. Geometry decoding is performed before attribute decoding.
[0134] The point cloud decoder according to the implementation includes an arithmetic decoder (arithmetic decoding) 7000, an octree synthesizer (synthesized octree) 7001, a surface approximation synthesizer (synthesized surface approximation) 7002, a geometry reconstructor (reconstructed geometry) 7003, an inverse coordinate transformer (inverse coordinate transformation) 7004, an arithmetic decoder (arithmetic decoding) 7005, an inverse quantizer (inverse quantization) 7006, a RAHT transformer 7007, an LOD generator (generated LOD) 7008, an inverse lifter (inverse lift) 7009, and / or a color inverse transformer (inverse color transformation) 7010.
[0135] An arithmetic decoder 7000, an octree synthesizer 7001, a surface approximation synthesizer 7002, a geometry reconstructor 7003, and a coordinate inverse transformer 7004 can perform geometric decoding. Geometric decoding according to the embodiment may include direct decoding and triplet geometric decoding. Direct encoding and triplet geometric decoding are selectively applied. Geometric decoding is not limited to the examples described above and is provided as a reference. The reverse process of the described geometric encoding is executed.
[0136] The arithmetic decoder 7000 according to the embodiment decodes the received geometric bitstream based on arithmetic coding. The operation of the arithmetic decoder 7000 corresponds to the inverse process of the arithmetic encoder 30004.
[0137] The octree synthesizer 7001 according to the embodiment can generate an octree by obtaining occupancy codes from the decoded geometric bitstream (or information about the geometry obtained as a decoding result). The occupancy codes are as follows: Please describe that configuration in detail.
[0138] When applying triplet geometry encoding, the surface approximation synthesizer 7002 according to the implementation can synthesize the surface based on the decoded geometry and / or the generated octree.
[0139] The geometry reconstructor 7003 according to the embodiment can regenerate geometry based on surface and / or decoded geometry. See also... As described, direct encoding and triadic geometric encoding are selectively applied. Therefore, the geometry reconstructor 7003 directly imports and adds positional information about points where direct encoding has been applied. When triadic geometric encoding is applied, the geometry reconstructor 7003 can reconstruct the geometry by performing reconstruction operations (e.g., triangle reconstruction, upsampling, and voxelization) of the geometry reconstructor 30005. Details and references The descriptions are the same for all of them, so their descriptions are omitted. The reconstructed geometry may include point cloud images or frames that do not contain attributes.
[0140] The coordinate inverse transformer 7004 according to the implementation can obtain the point position based on the reconstructed geometric transformation coordinates.
[0141] The arithmetic decoder 7005, inverse quantizer 7006, RAHT transformer 7007, LOD generator 7008, inverse booster 7009, and / or color inverse transformer 7010 are executable references. The attribute decoding described herein includes Region Adaptive Hierarchical Transformation (RAHT) decoding, interpolation-based hierarchical nearest neighbor prediction (prediction transformation) decoding, and interpolation-based hierarchical nearest neighbor prediction (lifting transformation) decoding with update / lifting steps. These three decoding schemes may be used selectively, or a combination of one or more decoding schemes may be used. The attribute decoding according to the embodiments is not limited to the examples described above.
[0142] According to the implementation method, the arithmetic decoder 7005 decodes the attribute bitstream by arithmetic encoding.
[0143] The inverse quantizer 7006 according to the implementation dequantizes information about the decoded attribute bitstream or the attributes obtained as a decoding result, and outputs the dequantized attributes (or attribute values). Inverse quantization can be selectively applied based on the attribute encoding of the point cloud encoder.
[0144] According to the implementation, the RAHT transformer 7007, LOD generator 7008, and / or inverse lifter 7009 can handle the reconstructed geometry and inverse quantization attributes. As described above, the RAHT transformer 7007, LOD generator 7008, and / or inverse lifter 7009 can selectively perform decoding operations corresponding to the encoding of the point cloud encoder.
[0145] According to the implementation, the color inverse transformer 7010 performs inverse transformation encoding to inversely transform the color values (or textures) included in the decoded attributes. The operation of the color inverse transformer 7010 can be selectively performed based on the operation of the color transformer 30006 of the point cloud encoder.
[0146] Although not shown in the figure, The elements of the point cloud decoder can be implemented by hardware, software, firmware, or a combination thereof, including one or more processors or integrated circuits configured to communicate with one or more memories included in the point cloud providing device. One or more processors can perform the above-described... The point cloud decoder's components include at least one or more operations and / or functions. Additionally, one or more processors are operable or perform operations for executing... The software program and / or instruction set for the operation and / or function of the elements of the point cloud decoder.
[0147] A transmitting device according to an embodiment is shown.
[0148] The transmitting device shown is The transmitting device 10000 (or Example of a point cloud encoder. The transmitting device shown can perform the same operation as the reference. The described point cloud encoder includes one or more of the same or similar operations and methods. The transmitting apparatus according to the embodiment may include a data input unit 8000, a quantization processor 8001, a voxelization processor 8002, an octree occupancy code generator 8003, a surface model processor 8004, an intra / inter-frame coding processor 8005, an arithmetic encoder 8006, a metadata processor 8007, a color transformation processor 8008, an attribute transformation processor 8009, a prediction / boosting / RAHT transformation processor 8010, an arithmetic encoder 8011, and / or a transmission processor 8012.
[0149] According to the embodiment, the data input unit 8000 receives or acquires point cloud data. The data input unit 8000 can perform operations and / or acquisition methods similar to the point cloud video acquirer 10001 (or refer to...). The described acquisition process (20000) is the same or similar operation and / or acquisition method.
[0150] The data input unit 8000, quantization processor 8001, voxelization processor 8002, octree occupancy code generator 8003, surface model processor 8004, intra / inter-frame coding processor 8005, and arithmetic encoder 8006 perform geometric coding. Geometric coding according to the implementation method and reference... The geometric codes described are the same or similar, so their detailed descriptions are omitted.
[0151] The quantization processor 8001 according to the implementation quantizes geometry (e.g., point position values). The operation of the quantization processor 8001 and / or quantization with reference... The operation and / or quantization of the described quantizer 30001 are the same or similar. Details and references The descriptions are the same.
[0152] According to the embodiment, the voxelization processor 8002 voxels the quantized position values of points. The voxelization processor 8002 can execute and reference... The operation and / or voxelization process of the quantizer 30001 described are the same as or similar to the operation and / or process. Details and references The descriptions are the same.
[0153] According to the implementation method, the octree occupancy code generator 8003 performs octree encoding based on the voxelized positions of points in the octree structure. The octree occupancy code generator 8003 can generate occupancy codes. The octree occupancy code generator 8003 can execute and reference... and The operations and / or methods described are the same as or similar to those of the point cloud encoder (or octree analyzer 30002). Details and references The descriptions are the same.
[0154] According to the implementation, the surface model processor 8004 can perform triadic geometry encoding based on a surface model to reconstruct point positions in a specific region (or node) based on voxels. The surface model processor 8004 can perform operations related to reference... The operations and / or methods described are the same as or similar to those of the point cloud encoder (e.g., surface approximation analyzer 30003). Details and references are available. The descriptions are the same.
[0155] The intra / inter-frame coding processor 8005 according to the embodiment can perform intra / inter-frame coding on point cloud data. The intra / inter-frame coding processor 8005 can perform the same operations as referenced... The described intra / inter-frame coding is the same or similar. Details and references The descriptions are the same. According to an implementation, the intra / inter-frame coding processor 8005 may be included in the arithmetic encoder 8006.
[0156] The arithmetic encoder 8006 according to the embodiment performs entropy encoding on the octree and / or approximate octree of point cloud data. For example, the encoding scheme includes arithmetic encoding. The arithmetic encoder 8006 performs the same or similar operations and / or methods as the arithmetic encoder 30004.
[0157] The metadata processor 8007 according to an embodiment processes metadata (e.g., set values) about point cloud data and provides it to necessary processing procedures such as geometric encoding and / or attribute encoding. Additionally, the metadata processor 8007 according to an embodiment can generate and / or process signaling information related to geometric encoding and / or attribute encoding. The signaling information according to an embodiment can be encoded separately from the geometric encoding and / or attribute encoding. The signaling information according to an embodiment can be interleaved.
[0158] The color transformation processor 8008, attribute transformation processor 8009, prediction / boosting / RAHT transformation processor 8010, and arithmetic encoder 8011 perform attribute encoding. Attribute encoding and reference according to the implementation method. The attribute codes described are the same or similar, so their detailed descriptions are omitted.
[0159] According to the implementation, the color transformation processor 8008 performs color transformation encoding to transform color values included in attributes. The color transformation processor 8008 may perform color transformation encoding based on reconstructed geometry. The reconstructed geometry and reference... The description is the same. Furthermore, its execution is the same as the reference. The operation and / or methods of the described color converter 30006 are the same as or similar to those described. Detailed descriptions are omitted.
[0160] According to the implementation, the attribute transformation processor 8009 performs attribute transformation to transform attributes based on reconstructed geometry and / or locations where geometric encoding is not performed. The attribute transformation processor 8009 performs transformations with reference to... The operation and / or method of the described attribute transformer 30007 are the same as or similar to those described. Detailed descriptions are omitted. The prediction / boosting / RAHT transformation processor 8010 according to the embodiment can encode the transformed attributes through any one or a combination of RAHT encoding, prediction transformation encoding, and boosting transformation encoding. The prediction / boosting / RAHT transformation processor 8010 performs and references... The RAHT transformer 30008, LOD generator 30009, and boost transformer 30010 described herein operate at least one of the same or similar operations. Furthermore, the predictive transform coding, boost transform coding, and RAHT transform coding are similar to those of the reference transformer. The descriptions are the same, so their detailed descriptions are omitted.
[0161] The arithmetic encoder 8011 according to the embodiment can encode the attributes of the code based on arithmetic encoding. The arithmetic encoder 8011 performs the same or similar operations and / or methods as the arithmetic encoder 300012.
[0162] According to an embodiment, the transmission processor 8012 can transmit individual bitstreams containing encoded geometric and / or encoded attribute and metadata information, or transmit a single bitstream configured with encoded geometric and / or encoded attribute and metadata information. When the encoded geometric and / or encoded attribute and metadata information according to an embodiment is configured as a single bitstream, the bitstream may include one or more sub-bitstreams. The bitstream according to an embodiment may include signaling information and slice data. The signaling information includes a sequence parameter set (SPS) for sequence-level signaling, a geometric parameter set (GPS) for geometric information encoded signaling, an attribute parameter set (APS) for attribute information encoded signaling, and a tile parameter set (TPS) for tile-level signaling. The slice data may include information about one or more slices. A slice according to an embodiment may include a geometric bitstream Geom0. 0 and one or more attribute bitstreams Attr00 and Attr1 0 .
[0163] A slice is a series of syntactic elements that represent all or part of a encoded point cloud frame.
[0164] The TPS according to an embodiment may include information about each tile in one or more tiles (e.g., coordinate information and height / size information about the bounding box). The geometric bitstream may include a header and a payload. The header of the geometric bitstream according to an embodiment may include a geom_parameter_set_id, a geom_tile_id, and a 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, the element performing geometry encoding and the element performing attribute encoding may share data / information with each other, as indicated by the dashed lines. The transmission processor 8012 according to an embodiment may perform the same or similar operations and / or transmission methods as the transmitter 10003. Details and References and The descriptions are the same, so their descriptions are omitted.
[0165] A receiving device according to an embodiment is shown.
[0166] The receiving device shown is The receiving device 10004 (or and Example of a point cloud decoder. The receiving device shown can perform the same operation as the reference. The same or similar one or more operations and methods described in the point cloud decoder.
[0167] The receiving apparatus according to the embodiments may include a receiver 9000, a receiving processor 9001, an arithmetic decoder 9002, an octree reconstruction processor based on occupancy codes 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 / boost / RAHT inverse transform processor 9009, a color inverse transform processor 9010, and / or a renderer 9011. Each decoding element according to the embodiments can perform the inverse process of the operation of the corresponding encoding element according to the embodiments.
[0168] Receiver 9000, according to an embodiment, receives point cloud data. Receiver 9000 can perform operations related to... The operation and / or receiving method of the receiver 10005 are the same as or similar to those of the receiver. Detailed description omitted.
[0169] The receiving processor 9001 according to the embodiment can acquire a geometric bit stream and / or an attribute bit stream from the received data. The receiving processor 9001 may be included in the receiver 9000.
[0170] Arithmetic decoder 9002, octet-based octree reconstruction processor 9003, surface model processor 9004, and inverse quantization processor 9005 are capable of performing geometric decoding. Geometric decoding and reference according to the implementation method. The described geometric decodings are the same or similar, so their detailed descriptions are omitted.
[0171] The arithmetic decoder 9002 according to the embodiment can decode a geometric bitstream based on arithmetic coding. The arithmetic decoder 9002 performs the same or similar operations and / or encodings as the arithmetic decoder 7000.
[0172] According to an embodiment, the octree reconstruction processor 9003 based on occupancy codes can reconstruct an octree by obtaining occupancy codes from the decoded geometric bitstream (or information about the geometry obtained as a decoding result). The octree reconstruction processor 9003 based on occupancy codes performs the same or similar operations and / or methods as the octree synthesizer 7001 and / or the octree generation method. When applying triad geometry encoding, the surface model processor 9004 according to an embodiment can perform triad geometry decoding and related geometric reconstruction (e.g., triangle reconstruction, upsampling, voxelization) based on surface model methods. The surface model processor 9004 performs the same or similar operations as the surface approximation synthesizer 7002 and / or the geometry reconstructor 7003.
[0173] The geometry of reversible quantization decoding according to the implementation of the inverse quantization processor 9005.
[0174] The metadata parser 9006, according to an implementation, can parse metadata (e.g., set values) contained in received point cloud data. The metadata parser 9006 can pass the metadata to geometry decoding and / or attribute decoding. Metadata and reference The metadata described is the same, so its detailed description is omitted.
[0175] Arithmetic decoder 9007, inverse quantization processor 9008, prediction / boost / RAHT inverse transform processor 9009, and color inverse transform processor 9010 perform attribute decoding. Attribute decoding and reference The properties described are decoded the same or similarly, so their detailed descriptions are omitted.
[0176] The arithmetic decoder 9007 according to the embodiment can decode the attribute bitstream via arithmetic coding. The arithmetic decoder 9007 can decode the attribute bitstream based on the reconstructed geometry. The arithmetic decoder 9007 performs the same or similar operations and / or encodings as the arithmetic decoder 7005.
[0177] The inverse quantization processor 9008 according to the embodiment can reversibly quantize and decode the attribute bitstream. The inverse quantization processor 9008 performs the same or similar operations and / or methods as the inverse quantizer 7006 and / or the inverse quantization method.
[0178] According to an embodiment, the prediction / boosting / RAHT inverse transform processor 9009 can process reconstructed geometry and inverse quantization attributes. The prediction / boosting / RAHT inverse transform processor 9009 performs one or more operations and / or decodings that are the same as or similar to those of the RAHT transformer 7007, LOD generator 7008, and / or inverse booster 7009. According to an embodiment, the color inverse transform processor 9010 performs inverse transform encoding to inverse transform color values (or textures) included in the decoded attributes. The color inverse transform processor 9010 performs operations and / or inverse transform encodings that are the same as or similar to those of the color inverse transformer 7010. According to an embodiment, the renderer 9011 can render point cloud data.
[0179] An exemplary structure that can be combined with a point cloud data transmission / reception method / apparatus according to an embodiment is shown.
[0180] The structure represents a configuration in which at least one of the following components—server 1060, robot 1010, autonomous vehicle 1020, XR device 1030, smartphone 1040, home appliance 1050, and / or head-mounted display (HMD) 1070—is connected to cloud network 1000. Robot 1010, autonomous vehicle 1020, XR device 1030, smartphone 1040, or home appliance 1050 are referred to as devices. Furthermore, XR device 1030 may correspond to a point cloud data (PCC) device according to an embodiment or be operatively connected to a PCC device.
[0181] Cloud network 1000 can refer to a network that forms part of or exists within a cloud computing infrastructure. Here, cloud network 1000 can be configured using a 3G network, a 4G or Long Term Evolution (LTE) network, or a 5G network.
[0182] 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 home 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.
[0183] 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.
[0184] Hereinafter, various embodiments of the devices 1010 to 1050 to which the above technology is applied will be described. The illustrated devices 1010 to 1050 can be operably connected / linked to the point cloud data sending device and the receiving device according to the above embodiment.
[0185]
[0186] 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 home appliance, a digital sign, a vehicle, a stationary robot, or a mobile robot.
[0187] 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. Thus, the XR / PCC device 1030 can obtain information about the surrounding space or real objects, and render and output XR objects. For example, the XR / PCC device 1030 can match an XR object including auxiliary information about the identified object with the identified object and output the matched XR object.
[0188] <PCC+XR+Mobile Phone>
[0189] The XR / PCC device 1030 can be implemented as the mobile phone 1040 by applying PCC technology.
[0190] The mobile phone 1040 can decode and display point cloud content based on PCC technology.
[0191]
[0192] 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.
[0193] The self-driving vehicle 1020 employing XR / PCC technology can refer to a self-driving vehicle equipped with means for providing XR images, or a self-driving vehicle serving as a control / interaction target in an XR image. Specifically, as a control / interaction target in an XR image, the self-driving vehicle 1020 can be distinguished from and operatively connected to the XR device 1030.
[0194] The autonomous vehicle 1020, equipped with means for providing XR / PCC images, can acquire sensor information from sensors including cameras and output generated XR / PCC images based on the acquired sensor information. For example, the autonomous vehicle 1020 may have a HUD and output XR / PCC images to it, thereby providing passengers with XR / PCC objects corresponding to real objects or objects presented on the screen.
[0195] When an XR / PCC object is output to a HUD, at least a portion of the XR / PCC object can be output to overlap with the actual object being pointed at by the passenger's eyes. Conversely, when an XR / PCC object is output to a display installed within the autonomous vehicle, at least a portion of the XR / PCC object can be output to overlap with objects on the screen. For example, the autonomous vehicle 1220 can output XR / PCC objects corresponding to objects such as roads, other vehicles, traffic lights, traffic signs, two-wheeled vehicles, pedestrians, and buildings.
[0196] Virtual reality (VR), augmented reality (AR), mixed reality (MR), and / or point cloud compression (PCC) technologies according to the implementation methods are applicable to various devices.
[0197] In other words, VR technology is a display technology that only provides CG images of real-world objects, backgrounds, etc. AR technology, on the other hand, refers to the technology of displaying virtually created CG images on top of images of real objects. MR technology is similar to AR technology in that the virtual objects to be displayed are mixed and combined with the real world. However, MR technology differs 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 the same characteristics as real objects. More specifically, an example of MR technology application is holographic services.
[0198] Recently, VR, AR, and MR technologies have often been referred to as extended reality (XR) technologies rather than being explicitly distinguished from each other. Therefore, embodiments of this 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.
[0199] The PCC method / apparatus according to the embodiments can be applied to vehicles that provide self-driving services.
[0200] Vehicles providing autonomous driving services connect to the PCC device for wired / wireless communication.
[0201] When the point cloud data (PCC) transmitting / receiving device according to the embodiment is connected to a vehicle for wired / wireless communication, the device can receive / process content data related to AR / VR / PCC services (which may be provided together with autonomous driving services) and transmit it to the vehicle. When the PCC transmitting / receiving device is installed in the vehicle, it can receive / process content data related to AR / VR / PCC services and provide it to the user based on user input signals input through a user interface device. The vehicle or user interface device according to the embodiment can receive user input signals. User input signals according to the embodiment may include signals indicating autonomous driving services.
[0202] The encoding method / apparatus according to the implementation may include reference The transmitting device 10000, the acquiring device 10001, the encoder 10002, and the transmitter 10003. Acquisition 20000, encoding 20001, and transmission 20002, , and encoder, Various devices, and Reference frame generation, Bitstream generation and The encoding describes the configuration and operation.
[0203] The decoding method / apparatus according to the embodiments may include reference The receiver 10004, receiver 10005, decoder 10006, and renderer 10007 are included. Decoding 20003 and rendering 20004, , and decoder Various devices, and Reference frame generation, Bitstream parsing and The decoding describes the configuration and operations.
[0204] The encoding / decoding apparatuses shown in the various figures according to embodiments may include a memory and a processor. The components shown in the various figures may correspond to hardware, software, a processor, and / or combinations thereof. The encoding / decoding method / apparatus according to embodiments may be simply referred to as a method / apparatus.
[0205] The method / apparatus according to the embodiments may include and perform reference frame buffer management operations for content captured by rotating light detection and ranging (LiDAR) (reference frame buffer management for 3D content captured by rotating LiDAR).
[0206] The implementation includes a reference frame buffer management method for inter-frame prediction compression in G-PCC of point cloud frames captured by a rotating LiDAR device. For example, the implementation may include a reference frame buffer management method for inter-frame prediction of geometry and attributes and / or a method for signaling parameter information related to reference frame buffer management for inter-frame prediction.
[0207] The implementation relates to a method for improving the compression efficiency of G-PCC for compressing 3D point cloud data.
[0208] A point cloud consists of a set of points, and each point can have geometric information and attribute information. The geometric information is three-dimensional position (XYZ) information, and the attribute information is color (RGB, YUV, etc.) and / or reflectance value.
[0209] The G-PCC encoding process may include dividing the point cloud into patches based on regions and further dividing each patch into slices for parallel processing. The G-PCC encoding process may include a process of compressing geometry on a slice-by-slice basis and a process of compressing attribute information based on reconstructed geometry (reconstructed geometry = decoded geometry) reconstructed from positional information altered by compression.
[0210] The G-PCC decoding process may include receiving encoded geometry bitstreams and attribute bitstreams in slices, decoding the geometry, and decoding attribute information based on the geometry reconstructed through the decoding process.
[0211] For the compression of geometric information, compression techniques based on octrees, compression techniques based on prediction trees, or compression techniques based on triplets can be used (compression techniques based on octrees can also be called compression techniques based on occupancy trees).
[0212] For compressing attribute information, compression techniques based on predictive transformation, compression techniques based on lifting transformation, or compression techniques based on region adaptive hierarchical transformation (RAHT) can be used.
[0213] The implementation includes a reference frame buffer management method for efficiently applying compression through inter-frame prediction of content captured by a LiDAR device.
[0214] A rotating LiDAR model according to an embodiment is illustrated.
[0215] The method and apparatus according to the embodiments can extract depth information using a LiDAR device of a radar system for capturing point cloud content. This radar system uses emitted laser pulses and measures the return time of the reflected laser pulses to measure the position coordinates of the reflector. The point cloud content generated by the LiDAR device can consist of multiple frames, or the multiple frames can be integrated into a single content.
[0216] LiDAR can be generated from locations at different elevation angles θ(i) i = 1..N It consists of N lasers (N = 16, 32, 64, etc.), and the lasers can capture point cloud data while rotating (rotating) along an azimuth angle Φ relative to the Z-axis (see...). This type is called a rotating LiDAR model, and the content captured by a rotating LiDAR model has angular properties.
[0217] Laser i can illuminate object M, and the position of object M can be estimated in Cartesian coordinates as (x, y, z) (see [reference]). Due to the fixed position of the laser sensor, its linear travel characteristics, and its rotation at a constant azimuth angle, when the position of object M is represented as (r, Φ, i) instead of (x, y, z) in Cartesian coordinates, the position of object M can exhibit characteristics that allow for the derivation of regularity between points in a manner that favors compression.
[0218] Therefore, by leveraging this characteristic, compression efficiency can be further improved when applying angular patterns during the geometric encoding / decoding process of data captured by rotating LiDAR devices. Angular patterns are a method of performing compression using (r, Φ, i) instead of (x, y, z).
[0219] The geometric information is encoded / decoded to reconstruct the geometric position information, and the attribute information is compressed based on the reconstructed position. In this case, either a Cartesian coordinate system or an angular model can be selectively used for the attribute information. Typically, a Cartesian coordinate system is used primarily.
[0220] Therefore, when storing reference frames in a buffer for inter-frame prediction, if the geometric and attribute information use different coordinate systems, it may be necessary to store information in two different coordinate systems for a single reference frame. If only one of the two pieces of information is stored, additional coordinate transformations need to be performed in the decoder, which introduces computational overhead and increases complexity. Storing both pieces of information increases memory usage, potentially burdening the decoder. Applying bidirectional prediction may require even more computation and memory usage.
[0221] Furthermore, global / local motion can be applied only to geometry or only to attributes. This can also increase the number of reference frames.
[0222] The implementation includes a reference frame buffer management method for applying predictive compression using reference frames to a point cloud captured by rotating LiDAR and having multiple frames. The implementation minimizes computational load and memory usage.
[0223] The encoding / decoding method according to the implementation includes the following reference frame buffer management method. For example, the encoding / decoding method may include 1) a reference frame buffer configuration step, 2) a reference frame generation step for encoding or decoding prediction tree-based geometry (referred to as geometric data), 3) a reference frame generation step for encoding or decoding attribute information (referred to as attribute data), and / or 4) an integrated reference frame generation step for geometric data and / or attribute data. The operation of each step is described below.
[0224] 1) Reference frame buffer configuration steps: The method / apparatus according to the implementation uses a reference frame for inter-frame prediction. A point that geometrically matches a point in the current frame can be found in the reference frame, and prediction can be performed based on the selected reference point. The residual value can be entropy-encoded based on the reference point having the smallest residual value among the differences between the predicted value and the current point's value, and the residual value can be sent to the decoder.
[0225] Therefore, the reference frame can essentially be the previous frame, the accumulated frame, or, when using bidirectional prediction, one or more frames. The current frame can be referred to as the first frame, and the reference frame can be referred to as the second frame.
[0226] Points in the reference frame may have geometric information based on a Cartesian coordinate system or geometric information based on an angular coordinate system. Furthermore, the points may have both types of information.
[0227] 2) Reference frame generation steps for encoding or decoding prediction tree-based geometry (which may be referred to as geometric data): When encoding or decoding the geometric data of point cloud data obtained by rotating LiDAR based on a prediction tree, it may be efficient to convert the encoding / decoding mode to an angular mode and perform compression and reconstruction.
[0228] During prediction tree-based geometric inter-frame prediction coding, the reference frame can be stored as reference point information based on the azimuth angle Φ.
[0229] To divide the entire 360-degree range into multiple intervals, the entire angle can be divided by any value (geom_quant: quantization value). The quantization value can be sent from the encoder to the decoder as parameter signaling information, or it can be set to any value and used in the encoder / decoder.
[0230] A specific number (geom_N) of points can be stored in intervals divided by quantization values. One point or multiple points can be stored. The number of points (geom_N) can be set as an option and sent as parameter signaling information from the encoder to the decoder. The decoder also needs to store points corresponding to the number of points (geom_N) so that both the encoder and decoder can use the same number of reference points to perform inter-frame prediction. For example, in predictive geometry encoding / decoding, 1 can be used as the number of points (geom_N).
[0231] When storing points based on azimuth angle Φ, the interval can be obtained by dividing azimuth angle Φ by the quantization value (geom_quant), and the points within that interval can be stored. Various methods can be applied to store the number of points (geom_N) corresponding to the number of points in that interval.
[0232] For example, up to geom_N points can be stored starting from the first point in the storage order; up to geom_N points can be stored in ascending order of the midpoint of the azimuth range; up to geom_N points can be stored starting from the last point; up to geom_N points can be stored in descending order of the midpoint of the azimuth range; and / or up to geom_N points can be stored by downsampling (e.g., points existing within the azimuth range can be sampled based on a specific angle, and the sampled points can be stored).
[0233] Information about the method for storing reference point information for reference frames can be sent from the encoder to the decoder as parameter information. The encoder / decoder can use the same number of reference points to perform inter-frame prediction.
[0234] 3) Reference frame generation steps for encoding or decoding attribute information (also known as attribute data): Cartesian coordinate system mode can be used during the compression (predictive transform, lifting transform, and RAHT transform) / reconstruction of attribute information (attribute data). Angular mode can also be used for attribute information compression / reconstruction. The reference frame used for inter-frame prediction of attribute information can also store point information of the coordinate system used in the current frame.
[0235] When a different coordinate system is used in attribute encoding (encoding / decoding) than the coordinate system used for geometry encoding, a separate reference frame can be generated.
[0236] When using the same coordinate system for attribute encoding (encoding / decoding) as the coordinate system used for geometry encoding, a reference frame for geometry can also be used.
[0237] Coordinate system information can be identified through parameter information (which is signaling information in the G-PCC bitstream, such as the spherical coordinate system flag in the geometric parameter set and / or attribute parameter set).
[0238] When reference frames are stored separately due to different coordinate systems used for geometry encoding and attribute encoding, the number of points to be stored for the attribute reference frame can be specified via the point count information (attr_N). When attr_N = -1, all coordinates can be stored. The value of attr_N can be sent from the encoder to the decoder as parameter signaling information.
[0239] Various methods can be applied to store points in the reference frame.
[0240] For example, when the coordinate mode is a Cartesian coordinate system, up to attr_N points can be stored among the points existing at a node at a specific octree depth level. The octree depth level (attr_octree_node_level) is signaled from the encoder to the decoder as parameter signaling information.
[0241] For example, when the coordinate mode is angular coordinates, the interval can be determined by dividing the Φ value by the quantization value (attr_quant) based on the angular coordinates, and the point corresponding to the interval can be selected and stored in the reference frame using the following method.
[0242] For example, up to attr_N points can be stored starting from the first point; up to attr_N points can be stored in ascending order of the midpoint of the azimuth range; up to attr_N points can be stored starting from the last point; up to attr_N points can be stored in descending order of the midpoint of the azimuth range; and / or up to attr_N points can be stored by downsampling (e.g., points existing within the azimuth range can be sampled based on a specific angle, and the sampled points can be stored).
[0243] Although the coordinates of the attribute information are in Cartesian coordinates, Cartesian coordinate point values can be stored simply by changing the container based on angular coordinates.
[0244] The storage method is also signaled to the decoder. Therefore, the encoder / decoder can use the same reference point to perform inter-frame prediction. In the case of angular coordinates, the attr_quant value can be sent to the decoder, or it can be set to any value and used in the encoder / decoder.
[0245] 4) Steps for generating integrated reference frames for geometric and / or attribute data
[0246] To minimize computational load and memory usage, an integrated reference frame can be generated for both geometry and attribute encoding. Whether to use the integrated reference frame can be signaled to the decoder. Whether the same coordinate system is used for geometry and attribute encoding can be identified through parameter information (which is signaling information in the bitstream).
[0247] When using an integrated reference frame, the coordinate system of the attribute information is prioritized. Since compression efficiency can be improved when the attribute information references more points with Φ values, the reference frame is generated by prioritizing the coordinate system of the attribute information. That is, geometric / attribute information can be stored in the reference frame according to the coordinate system used during attribute compression. The integrated reference frame can be called an attribute reference frame. Attribute reference frames can be used to perform inter-frame predictive coding / decoding of geometric and attribute information.
[0248] When both geometric and attribute information use Cartesian coordinates, up to attr_N points can be stored among the points existing at a node at a specific octree depth level.
[0249] The octree depth level (attr_occtree_node_level) and attr_N value are signaled to the decoder.
[0250] When using angular coordinates during geometric compression, or when using angular coordinates during both geometric and attribute compression, an interval can be determined by dividing the Φ value by the attr_quant value based on the angular coordinates, and the corresponding attr_N points can be stored. The attr_N value is signaled to the decoder.
[0251] The following methods can be used to select and store attr_N points in the reference frame: store up to attr_N points starting only from the first point; store up to attr_N points in ascending order of the midpoint of the azimuth range; store up to attr_N points starting only from the last point; store up to attr_N points in descending order of the midpoint of the azimuth range; and / or store up to attr_N points only by downsampling (e.g., points existing within the azimuth range can be sampled based on a specific angle, and the sampled points can be stored).
[0252] The attr_quant value, attr_N value, and point selection method can be sent to the decoder. Alternatively, the attr_quant value, attr_N value, and point selection method can be set to arbitrary values and used in the encoder / decoder.
[0253] When using an integrated reference frame, a reference frame is generated based on a coordinate system with attribute information. When using reference frames in inter-frame compression of geometry based on a prediction tree, the method for specifying reference points in each partitioned region (octree node or azimuth range) can be set. The number of points used for geometry (geom_N) can also be specified individually. The number of points (geom_N) can have a value of 1.
[0254] Regarding point selection, the method / apparatus according to the implementation may select up to geom_N points starting only from the first point; select up to geom_N points only in ascending order of the median value of the azimuth range; select up to geom_N points only starting only from the last point; select up to geom_N points only in descending order of the median value of the azimuth range; and / or select up to geom_N points only by downsampling (e.g., points existing within the azimuth range may be sampled based on a specific angle, and the sampled points may be selected).
[0255] When attribute information and geometry have different coordinate systems, coordinate system transformation can be performed only for selected points. This can be done in the decoder / encoder. Therefore, inter-frame prediction can be performed using a reference frame buffer with minimal memory usage and minimal transformation operations.
[0256] An encoding device according to an embodiment is illustrated.
[0257] The PCC data encoding is illustrated, and the components may correspond to hardware, software, processors, and / or combinations thereof. PCC data can be input to the encoder and encoded to output a geometric information bitstream and an attribute information bitstream.
[0258] According to the implementation method The encoding device can perform reference The transmitting device 10000, the acquiring device 10001, the encoder 10002, and the transmitter 10003. Acquisition 20000, encoding 20001, and transmission 20002, and encoder, Various devices, and Reference frame generation, Bitstream generation, The operations described, such as encoding. The device may include a memory and a processor, and the processor may execute... The functions of each unit.
[0259] The data input unit can read and set the data input by the acquirer (e.g., PLY file, configuration file, etc.).
[0260] Coordinate transformers can perform coordinate system transformations, such as changing the XYZ axes of a coordinate system or converting an XYZ Cartesian coordinate system to a spherical coordinate system.
[0261] The geometric information transformation and quantization processor can adjust the scaling by multiplying the geometric position X, Y, and Z values of point cloud points by a scaling value according to the scaling configuration (geometric quantization value).
[0262] Spatial partitioners can divide content into chunks or slices for regional access or parallel processing of content.
[0263] The voxelization processor can round the geometric position values of points with applied scaling values to integers.
[0264] Geometric information intra-frame predictors can apply geometric intra-frame coding. Intra-frame coding methods can include octree coding, prediction tree coding, triad coding, etc.
[0265] When the frame is a P-frame, the LPU / PU partitioner can divide the points into slices into LPUs / PUs to support inter-frame prediction, and can find and assign motion vectors corresponding to the divided regions.
[0266] Motion compensators can generate predicted point clouds by applying motion vectors to the LPU / PU of a partition.
[0267] The geometric information inter-frame predictor can perform octree-based inter-frame coding, prediction tree-based inter-frame coding, or triad-based inter-frame coding based on the difference between the predicted values of the current frame and the reference frame with motion compensation applied.
[0268] The geometric entropy encoder can entropy encode the results of the geometric information intra / inter frame predictor.
[0269] The color conversion processor can convert attribute types, such as changing RGB colors to YUV.
[0270] The color recalibrator can predict attribute values suitable for the changed location when scaling and changing position information (geometric data) values in a geometry application.
[0271] The attribute information intra-frame predictor can perform attribute information intra-frame coding. Intra-frame coding methods may include predictive transform coding, lifting transform coding, RAHT coding, etc.
[0272] The attribute information inter-frame predictor can generate residual values based on the difference between the attribute values of the current frame and the attribute prediction values of a reference frame with motion compensation applied.
[0273] The attribute information entropy encoder can entropy encode the results of the attribute information intra / inter-frame predictor.
[0274] The reference frame generator can store the reconstructed geometry and reconstructed attribute information in the reference frame buffer, and can transfer reference frame data from the reference frame to another module.
[0275] The operation of the reference frame generator according to the implementation method is as follows.
[0276] The reference frame generator can store reference frames in a reference frame buffer.
[0277] The reference frame generator can store reference frames for geometry encoding. Refer to the description of step 2) above.
[0278] The reference frame generator can store reference frames for attribute encoding. Refer to the description of step 3) above.
[0279] When the coordinate systems used for geometric encoding and attribute encoding are the same, the reference frame generator can use a single reference frame.
[0280] When the coordinate systems used for geometric encoding and attribute encoding are different, and an integrated reference frame is to be used, the reference frame generator can store the reference frame through the integrated frame generation process described in step 4) above.
[0281] When the coordinate systems used for geometry encoding and attribute encoding are different, and an integrated reference frame is to be used, the reference frame generator can transmit the reference frame according to the process of transmitting geometry information from the integrated frame as described in step 4) above.
[0282] An example of a decoding apparatus according to an embodiment is shown.
[0283] The PCC data decoder is shown, and the components may correspond to hardware, software, processors, and / or combinations thereof. Encoded geometric information bitstreams and attribute information bitstreams can be input to the decoder for decoding and output as reconstructed PCC data.
[0284] The decoding device can perform reference The receiver 10004, receiver 10005, decoder 10006, and renderer 10007 are included. Decoding 20003 and rendering 20004, , and decoder Various devices, and Reference frame generation, Bitstream parsing, The operations described, such as decoding. The device may include a memory and a processor, and the processor may execute... The functions of each unit.
[0285] The geometric entropy decoder can perform entropy decoding on geometric bitstreams.
[0286] The geometric information intra-frame prediction reconstructor can reconstruct the predicted values predicted by geometric intra-frame coding. Intra-frame coding methods can include octree coding, prediction tree coding, triad coding, etc.
[0287] When the frame is a P-frame, the LPU / PU partitioner can reconstruct the signaling region values used to indicate LPU / PU partitions to support inter-frame prediction, and can partition reference frames into LPUs / PUs.
[0288] Motion compensators can generate predicted point clouds by applying motion vectors to the LPU / PU of a partition.
[0289] The geometric information inter-frame prediction reconstructor can reconstruct the predicted values predicted by geometric inter-frame coding. Inter-frame coding methods can include octree-based inter-frame coding methods, prediction tree-based inter-frame coding methods, triad-based inter-frame coding methods, etc.
[0290] The inverse coordinate system transformer can restore the changed XYZ axes, or inversely transform the transformed coordinate system back to the XYZ Cartesian coordinate system.
[0291] The geometric information transformation and inverse quantization processor can recover the scaling value (geometric quantization value) notified by the signal and apply the recovered scaling value to the recovered geometric position X, Y, and Z values of the point to perform the recovery.
[0292] The attribute residual information entropy decoder can perform entropy decoding on the attribute bitstream.
[0293] The attribute-information intra-prediction reconstructor can reconstruct the predicted values predicted by attribute-information intra-coding. Intra-coding methods may include prediction transform coding, lifting transform coding, RAHT coding, etc.
[0294] The attribute information inter-frame prediction reconstructor can reconstruct the predicted values predicted by attribute information inter-frame coding.
[0295] The color inverse conversion processor can restore the converted attributes to RGB colors.
[0296] The reference frame generator can store the reconstructed geometry and reconstructed attribute information in the reference frame buffer, and can transfer reference frame data from the reference frame to another module.
[0297] The reference frame generator according to the implementation method may perform the following operations.
[0298] The reference frame generator can store reference frames in a reference frame buffer.
[0299] The reference frame generator can store reference frames for geometry encoding. Reference frames can be stored using the process described in step 2) above.
[0300] The reference frame generator can store reference frames for attribute encoding. Reference frames can be stored using the process described in step 3) above.
[0301] When the coordinate systems used for geometric encoding and attribute encoding are the same, the reference frame generator can use a single reference frame.
[0302] When the coordinate systems used for geometric encoding and attribute encoding are different, and an integrated reference frame is to be used, the reference frame generator can store the reference frame through the integrated frame generation process described in step 4) above.
[0303] When the coordinate systems used for geometry encoding and attribute encoding are different, and an integrated reference frame is to be used, the reference frame generator can transmit the reference frame according to the process of transmitting geometry information from the integrated frame as described in step 4) above.
[0304] A detailed flowchart of the reference frame generation method performed by the encoder and decoder is shown below. As shown.
[0305] An example of a reference frame generation method according to an implementation method is shown.
[0306] When the encoder and / or decoder request to store a reference frame, it is determined whether the geometrically encoded coordinate system and the attribute-encoded coordinate system are the same or different from each other. If the geometrically encoded coordinate system and the attribute-encoded coordinate system are the same, it is checked whether the attribute-encoded coordinate system is a Cartesian coordinate system. When the attribute-encoded coordinate system is a Cartesian coordinate system, N points can be sampled for each interval (or region) based on octree nodes according to a specified method and stored in the frame buffer. When the attribute-encoded coordinate system is not a Cartesian coordinate system but an angular coordinate system, intervals (or regions) can be generated based on azimuth angles by dividing the angle by the quantization value, and N points can be sampled for each interval according to a specified method and stored in the frame buffer.
[0307] When the geometrically encoded coordinate system and the attribute-encoded coordinate system are different from each other, it is determined whether to use an integrated frame for geometry and attributes. When using an integrated frame, as described above, intervals can be configured based on octree nodes or azimuth angles depending on whether the attribute-encoded coordinate system is a Cartesian coordinate system or an angular coordinate system, and N points in each interval can be stored in a reference frame according to a specified method.
[0308] When not using an integrated frame, check if the geometrically encoded coordinate system is a Cartesian coordinate system. If the geometrically encoded coordinate system is a Cartesian coordinate system, generate intervals based on octree nodes, and sample N points for each interval according to a specified method and store them in the frame buffer.
[0309] When the geometric coding coordinate system is not a Cartesian coordinate system but an angular coordinate system, intervals are generated based on the azimuth angle, and N points are sampled for each interval according to a specified method and stored in the frame buffer.
[0310] An example of a reference frame generation method according to an implementation method is shown.
[0311] When the encoder and / or decoder requests reference points for geometry encoding from the reference frame, they check whether the geometry encoding coordinate system and the attribute encoding coordinate system are identical. If the two coordinate systems are identical, they check whether the attribute encoding coordinate system is a Cartesian coordinate system. When the attribute encoding coordinate system is a Cartesian coordinate system, geom_N reference points can be selected from the geometry reference points in each interval generated based on octree nodes according to a specified method, and the selected reference points are transmitted to the encoder and / or decoder. When the attribute encoding coordinate system is not a Cartesian coordinate system but an angular coordinate system, geom_N reference points can be selected from the points in each interval generated based on the azimuth angle by dividing the angle by the quantization value according to a specified method, and the selected reference points are transmitted to the encoder and / or decoder and stored in the reference frame buffer.
[0312] When the geometrically encoded coordinate system and the attribute-encoded coordinate system are different from each other, it is possible to check whether to use an integrated frame. When using an integrated frame, one of the above-mentioned reference point selection based on octree nodes and the above-mentioned reference point selection based on azimuth angle can be performed depending on whether the attribute-encoded coordinate system is a Cartesian coordinate system or an angular coordinate system, and the reference point can be stored in the reference frame buffer.
[0313] When not using an integrated frame, check if the geometrically encoded coordinate system is a Cartesian coordinate system. If the geometrically encoded coordinate system is a Cartesian coordinate system, perform the reference point selection based on octree nodes as described above. If the geometrically encoded coordinate system is not a Cartesian coordinate system but an angular coordinate system, perform the reference point selection based on azimuth angle as described above, and store the reference points in the reference frame buffer.
[0314] When the geometrically encoded coordinate system and the attribute-encoded coordinate system are different from each other, the coordinate system of the selected point can be changed based on the geometrically encoded coordinate system, and the reference point can be stored in the reference frame buffer.
[0315] An example of a reference frame generation method according to an implementation method is shown.
[0316] When the encoder and / or decoder requests reference points for attribute encoding from the reference frame, they check whether the attribute encoding coordinate system is a Cartesian coordinate system. If the attribute encoding coordinate system is a Cartesian coordinate system, N reference points can be selected from the geometric reference points in each interval generated based on octree nodes according to a specified method, and the selected reference points are stored in the reference frame buffer.
[0317] If the attribute encoding coordinate system is not a Cartesian coordinate system, check if the attribute encoding coordinate system is an angular coordinate system. If the attribute encoding coordinate system is an angular coordinate system, select N reference points from each interval generated using quantized values based on the azimuth angle according to a specified method, and store the selected reference points in the reference frame buffer.
[0318] A bitstream according to an implementation method is illustrated.
[0319] The encoding method / apparatus according to the implementation method ( The transmitting device 10000, the acquiring device 10001, the encoder 10002, and the transmitter 10003. Acquisition 20000, encoding 20001, and transmission 20002, , and encoder, Various devices, and Reference frame generation, Bitstream generation, Encoding (such as coding) can encode point cloud data, generate relevant parameter information, and generate encoded point clouds.
[0320] Decoding method / apparatus according to the implementation method ( The receiver 10004, receiver 10005, decoder 10006, and renderer 10007 are included. Decoding 20003 and rendering 20004, , and decoder Various devices, and Reference frame generation, (Decoding, etc.) can be parsed The bitstream, and based on the parameter set information in the bitstream ( This is used to decode point cloud data.
[0321] Each abbreviation indicating information in the bitstream has the following meaning. Each abbreviation may be referenced by another term within the scope of its equivalent meaning: SPS: Sequence Parameter Set, GPS: Geometric Parameter Set, APS: Attribute Parameter Set, TPS: Patch Parameter Set, Geom: Geometric Bitstream = Geometric Slice Header + [Geometric PU Header + Geometric PU Data] | Geometric Slice Data, Attr: Attribute Bitstream = Attribute Data Unit Header + [Attribute PU Header + Attribute PU Data] | Attribute Data Unit Data.
[0322] According to the implementation, option information associated with the reference frame buffer can be added to the SPS, GPS, and / or TPS and signaled. Option information associated with the reference frame buffer can be added to the TPS or the geometric header and / or attribute header of each slice and signaled. Tiles or slices are provided so that the point cloud can be divided and processed by region. When the point cloud is divided by region, different neighbor point set generation options can be configured for each region, thereby providing a selection scheme with low complexity and low reliability or conversely, a selection scheme with high complexity and high reliability. Different settings can be configured according to the receiver's processing capabilities. Therefore, when point cloud data is divided into tiles, different options can be applied to each tile. When point cloud data is divided into slices, different options can be applied to each slice.
[0323] The following describes the parameter information included in the bitstream with reference to the accompanying figures.
[0324] An example of SPS in a bitstream according to an implementation method is shown.
[0325] According to the implementation, option information associated with the reference frame buffer can be added to the SPS and signaled to support efficient inter-frame prediction signaling and inter-frame prediction compression.
[0326] Profile (profile_idc): A configuration file that indicates the bitstream conformance.
[0327] Profile compatibility flags: Indicate that when the profile compatibility flag is 1, the bitstream follows the profile with profile_idc set to j.
[0328] Number of attribute sets (sps_num_attribute_sets): Indicates the number of encoded attributes in the bitstream. The value of sps_num_attribute_sets can range from 0 to 63.
[0329] Attribute dimension[i]: Indicates the number of components of the i-th attribute.
[0330] Attribute instance ID (attribute_instance_id[i]): Indicates the instance ID of the i-th attribute.
[0331] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether an integrated reference frame buffer is used for the sequence.
[0332] GPS in a bitstream according to an implementation method is illustrated.
[0333] According to the implementation, option information related to the reference frame buffer used in the geometric information encoding / decoding process can be added to the GPS and signaled to support efficient inter-frame prediction signaling.
[0334] Geometry parameter set ID (gps_geom_parameter_set_id): Indicates a GPS identifier that can be referenced by another syntax element. The value of gps_seq_parameter_set_id can be in the range of 0 to 15.
[0335] Sequence Parameter Set ID (gps_seq_parameter_set_id): Indicates the value of sps_seq_parameter_set_id that activates the SPS. The value of gps_seq_parameter_set_id can be in the range of 0 to 15.
[0336] Geometry tree type (geom_tree_type): When the value of geom_tree_type is 0, it indicates that an octree (occupancy tree) is used to encode the location information. When the value of geom_tree_type is 1, it indicates that a prediction tree is used to encode the location information.
[0337] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for a frame.
[0338] Geometric quantization (geom_quant): Indicates the value (quantization value) used to divide the azimuth angle applied to the frame into arbitrary intervals.
[0339] Geometry Quantity (geom_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the frame.
[0340] Geom_sampling_method_type: Indicates the method for selecting geom_N points for each interval divided by the azimuth angle applied to the frame. For example, the sampling method type information can be signaled as follows: when the value is 0, select and store up to geom_N points starting only from the first point; when the value is 1, select and store up to geom_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to geom_N points only starting only from the last point; when the value is 3, select and store up to geom_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store points by downsampling.
[0341] Geometry Extraction Count (geom_extract_N): Indicates the maximum number of points applied to a frame, and how many reference points are obtained from and used when using an integrated reference frame.
[0342] Geom_extract_sampling_method_type: Indicates the method applied to the frame when using an integrated reference frame for selecting geom_N points from the reference frame for each interval divided by the azimuth angle applied to the frame. For example, the point selection sampling method type information can be signaled as follows: when the value is 0, up to geom_N points are selected only from the first point; when the value is 1, up to geom_N points are selected only in ascending order of the midpoint of the azimuth angle range; when the value is 2, up to geom_N points are selected only from the last point; when the value is 3, up to geom_N points are selected only in descending order of the midpoint of the azimuth angle range; when the value is 4, up to geom_N points are selected only by downsampling.
[0343] An example of an APS in a bitstream according to an implementation method is shown.
[0344] According to the implementation, parameter information for the reference frame buffer can be added to the APS and signaled to support an efficient reference frame buffer.
[0345] Attribute parameter set ID (aps_attr_parameter_set_id): Indicates the APS identifier that can be referenced by another syntax element. The value of aps_attr_parameter_set_id can be in the range of 0 to 15.
[0346] Sequence Parameter Set ID (aps_seq_parameter_set_id): Indicates the value of sps_seq_parameter_set_id that activates the SPS. The value of aps_seq_parameter_set_id can be in the range of 0 to 15.
[0347] Lifting_num_pred_nearest_neighbours: Indicates the maximum number of nearest neighbors to use for prediction.
[0348] `lifting_max_num_direct_predictors`: Indicates the maximum number of predictors to use for direct prediction. The value of `lifting_max_num_direct_predictors` ranges from 0 to `lifting_num_pred_nearest_neighbours`. The values of the variable `MaxNumPredictors` used during decoding are as follows: Maximum number of predictors (MaxNumPredictors) = Maximum number of direct predictors (lifting_max_num_direct_predicots) + 1 Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for a frame.
[0349] Attribute count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the frame.
[0350] Attribute tree node level (attr_occtree_node_level): Indicates the octree depth level value when using a Cartesian coordinate system applied to the frame. This value is used to determine intervals based on the octree (occupancy tree).
[0351] Attribute quantization (attr_quant): Indicates the value used to divide the azimuth angle applied to the frame into arbitrary intervals.
[0352] Attribute count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the frame.
[0353] Attribute sampling method type (attr_sampling_method_type): Indicates the method for selecting attr_N points for each interval divided by the azimuth angle applied to the frame. For example, the attribute sampling method type can be signaled as follows: when the value is 0, select and store up to attr_N points starting only from the first point; when the value is 1, select and store up to attr_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to attr_N points only starting from the last point; when the value is 3, select and store up to attr_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store up to attr_N points only by downsampling.
[0354] The TPS in a bitstream according to the implementation method is illustrated.
[0355] According to the implementation, parameter information for the reference frame buffer can be added to the TPS and signaled to support an efficient reference frame buffer.
[0356] Number of tiles (num_tiles): Indicates the number of tiles signaled to the bitstream. When this value is not present, num_tiles is inferred to be 0.
[0357] Tile bounding box offset x (tile_bounding_box_offset_x[i]): Indicates the x-offset of the i-th tile in Cartesian coordinates. When this value does not exist, the value of tile_bounding_box_offset_x[0] is inferred to be sps_bounding_box_offset_x.
[0358] Tile bounding box offset y (tile_bounding_box_offset_y[i]): Indicates the y-offset of the i-th tile in Cartesian coordinates. When this value does not exist, the value of tile_bounding_box_offset_y[0] is inferred to be sps_bounding_box_offset_y.
[0359] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for the tile.
[0360] Geometric quantization (geom_quant): Indicates the value used to divide the azimuth angle applied to the tile into arbitrary intervals.
[0361] Geometry Quantity (geom_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the tile.
[0362] Geometry sampling method type (geom_sampling_method_type): Indicates the method for selecting geom_N points for each interval divided by the azimuth angle applied to the tile. For example, the geometry sampling method type can be signaled as follows: when the value is 0, select and store up to geom_N points starting only from the first point; when the value is 1, select and store up to geom_N points only in ascending order of the midpoint of the azimuth range; when the value is 2, select and store up to geom_N points only starting only from the last point; when the value is 3, select and store up to geom_N points only in descending order of the midpoint of the azimuth range; when the value is 4, select and store points by downsampling.
[0363] Geometry Extraction Count (geom_extract_N): Indicates the maximum number of points applied to the tile and how many reference points are obtained from and used when using an integrated reference frame.
[0364] Geom_extract_sampling_method_type: Indicates the method used to select geom_N points from the reference frame for each interval divided by the azimuth angle applied to the tile when using an integrated reference frame. For example, the geom_extract sampling method can be signaled as follows: when the value is 0, select up to geom_N points only starting from the first point; when the value is 1, select up to geom_N points only in ascending order of the midpoint of the azimuth range; when the value is 2, select up to geom_N points only starting from the last point; when the value is 3, select up to geom_N points only in descending order of the midpoint of the azimuth range; when the value is 4, select up to geom_N points only by downsampling.
[0365] Attribute Count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth applied to the tile.
[0366] Attribute occtree node level (attr_occtree_node_level): When using a Cartesian coordinate system applied to the tile, this indicates the occtree (occupancy tree) depth level value. This value is used to determine intervals based on the occtree (occupancy tree).
[0367] Attribute quantization (attr_quant): Indicates the value used to divide the azimuth angle applied to the tile into arbitrary intervals.
[0368] Attribute Count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth applied to the tile.
[0369] Attribute sampling method type (attr_sampling_method_type): Indicates the method for selecting attr_N points for each interval divided by the azimuth angle applied to the tile. For example, the attribute sampling method type can be signaled as follows: when the value is 0, select and store up to attr_N points starting only from the first point; when the value is 1, select and store up to attr_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to attr_N points only starting from the last point; when the value is 3, select and store up to attr_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store up to attr_N points only by downsampling.
[0370] An example is shown of a geometric slice header (GSH) in a bitstream according to an implementation.
[0371] According to the implementation, the geometric prediction tree encoding option information for each LPU / PU used in the geometric information encoding / decoding process can be added to the GSH and notified by signal.
[0372] Geometry parameter set ID (gsh_geometry_parameter_set_id): Indicates the value of gps_geom_parameter_set_id for which GPS is activated.
[0373] Tile ID (gsh_tile_id): Indicates the tile ID value referenced by GSH.
[0374] Slice ID (gsh_slice_id): Indicates the slice header to be referenced by another syntax element.
[0375] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for slices.
[0376] Geometric quantization (geom_quant): Indicates the value used to divide the azimuth angle applied to the slice into arbitrary intervals.
[0377] Geometry Quantity (geom_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the slice.
[0378] Geometry sampling method type (geom_sampling_method_type): Indicates the method for selecting geom_N points for each interval divided by the azimuth angle applied to the slice. For example, the geometry sampling method type can be signaled as follows: when the value is 0, select and store up to geom_N points starting only from the first point; when the value is 1, select and store up to geom_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to geom_N points only starting only from the last point; when the value is 3, select and store up to geom_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store points by downsampling.
[0379] Geometry Extraction Count (geom_extract_N): Indicates the maximum number of points applied to the slice, and how many reference points are obtained from and used when using an integrated reference frame.
[0380] Geom_extract_sampling_method_type: Indicates the method used to select geom_N points from the reference frame for each interval divided by the azimuth angle applied to the slice when using an integrated reference frame. For example, the geom_extract_sampling_method_type can be signaled as follows: when the value is 0, up to geom_N points are selected only from the first point; when the value is 1, up to geom_N points are selected only in ascending order of the midpoint of the azimuth angle range; when the value is 2, up to geom_N points are selected only from the last point; when the value is 3, up to geom_N points are selected only in descending order of the midpoint of the azimuth angle range; when the value is 4, up to geom_N points are selected only by downsampling.
[0381] An example is shown of the attribute slice header (ASH) in a bitstream according to an implementation method.
[0382] According to the implementation method, parameter information for encoding reflectance properties can be added to the ASH and signaled to support efficient reflectance property compression.
[0383] Attribute parameter set ID (abh_attr_parameter_set_id): Indicates the value of aps_attr_parameter_set_id for activating APS.
[0384] The attribute index of the SPS (abh_attr_sps_attr_idx): indicates the set of attributes that are active in the SPS. The value of abh_attr_sps_attr_idx can be in the range of 0 to sps_num_attribute_sets in the active SPS.
[0385] Attribute Geometry Slice ID (ash_attr_geom_slice_id): Indicates the value of the slice ID (gsh_slice_id) that activates GSH.
[0386] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for a frame.
[0387] Attribute Count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth applied to the tile.
[0388] Attribute occtree node level (attr_occtree_node_level): When using a Cartesian coordinate system applied to the slice, this indicates the depth level value of the occtree (occupancy tree). This value is used to determine intervals based on the occtree (occupancy tree).
[0389] Attribute quantization (attr_quant): Indicates the value used to divide the azimuth angle applied to the slice into arbitrary intervals.
[0390] Attribute count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the slice.
[0391] Attribute sampling method type (attr_sampling_method_type): Indicates the method for selecting attr_N points for each interval divided by the azimuth angle applied to the slice. For example, the attribute sampling method type can be signaled as follows: when the value is 0, select and store up to attr_N points starting only from the first point; when the value is 1, select and store up to attr_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to attr_N points only starting only from the last point; when the value is 3, select and store up to attr_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store up to attr_N points only by downsampling.
[0392] An example of an encoding method according to an implementation method is shown.
[0393] The encoding method according to the implementation may include encoding point cloud data (S2400) and / or transmitting a bit stream including point cloud data (S2410).
[0394] Point cloud data can be represented based on at least one of radius, azimuth, or laser index. Encoding the point cloud data (S2400) may include encoding the geometric data of the point cloud data based on inter-frame prediction and encoding the attribute data of the point cloud data based on inter-frame prediction. Encoding the geometric data and encoding the attribute data may each further include generating a reference frame.
[0395] Generating a reference frame may include generating a reference frame for decoding geometric data based on a prediction tree for the point cloud data. Reference points in the reference frame may be ordered based on azimuth angles. At least one reference point for a given interval in the reference frame, generated based on quantization values, may be stored in a buffer used for the reference frame. When multiple reference points exist in the interval, a first number of points from the multiple reference points may be stored in the buffer based on at least one of the sorting order or azimuth angle range.
[0396] Generating a reference frame may include: generating a reference frame for decoding the attribute data when the coordinate system of the attribute data is different from that of the geometric data; decoding the attribute data based on the reference frame used for the geometric data when the coordinate system of the attribute data is the same as that of the geometric data; generating a first number of attribute data as reference frames based on an octree for the point cloud data when the coordinate system of the attribute data is a Cartesian coordinate system; and generating a first number of attribute data as reference frames based on an azimuth angle when the coordinate system of the attribute data is an angular coordinate system, and selecting the first number of attribute data based on at least one of the sorting order or the azimuth angle.
[0397] Implementation methods may also include storing data from... The method generates a computer-readable storage medium for a bitstream.
[0398] The implementation may also include a method comprising obtaining a bitstream of point cloud data and transmitting data including the bitstream. The bitstream may be generated based on encoding the point cloud data.
[0399] A decoding method according to an embodiment is illustrated.
[0400] The decoding method according to the embodiment may include receiving a bit stream including point cloud data (S2500) and / or decoding the point cloud data (S2510). The decoding method can follow The reverse process of the encoding method.
[0401] Reference LiDAR data characteristics and The decoder configuration allows point cloud data to be represented based on at least one of radius, azimuth, or laser index. Decoding the point cloud data (S2510) may include decoding the geometric data of the point cloud data based on inter-frame prediction and decoding the attribute data of the point cloud data based on inter-frame prediction. Decoding the geometric data and decoding the attribute data may each further include generating a reference frame.
[0402] Regarding the generation of reference frames for prediction tree-based geometry encoding, generating reference frames may include generating reference frames for decoding geometry data based on a prediction tree for point cloud data. Reference points in the reference frame may be ordered based on azimuth angles. At least one reference point for a given interval in the reference frame, generated based on quantization values, may be stored in a buffer for the reference frame. When multiple reference points exist in the interval, a first number of points from the multiple reference points may be stored in the buffer based on at least one of the sorting order or azimuth angle range.
[0403] Regarding the generation of reference frames for information encoding, generating reference frames may include: when the coordinate system of the attribute data is different from the coordinate system of the geometric data, generating a reference frame for decoding the attribute data. When the coordinate system of the attribute data is the same as the coordinate system of the geometric data, the attribute data can be decoded based on the reference frame used for the geometric data. When the coordinate system of the attribute data is a Cartesian coordinate system, a first number of attribute data can be generated as reference frames based on an octree for the point cloud data. When the coordinate system of the attribute data is an angular coordinate system, a first number of attribute data can be generated as reference frames based on azimuth angles, and the first number of attribute data can be selected based on at least one of the sorting order or azimuth angle.
[0404] Regarding the generation of the integrated reference frame for geometry / attributes, generating the reference frame may include: when the coordinate systems of the geometry data and the attribute data are Cartesian coordinate systems, generating a first number of attribute data as reference frames based on an octree; and when the coordinate systems of the geometry data and the attribute data are angular coordinate systems, generating a first number of attribute data as reference frames based on an azimuth angle. The first number of attribute data may be selected based on at least one of the sorting order or the azimuth angle.
[0405] about The SPS, GPS, and APS bitstream may include at least one of a sequence parameter set, a geometric parameter set, an attribute parameter set, a tile parameter set, a geometric data header, or an attribute data header. The sequence parameter set may include information indicating whether an integrated reference frame buffer is used. The geometric parameter set may include at least one of the following: information indicating whether an integrated reference frame buffer is used, a quantization value associated with the azimuth angle used for the reference frame, information about the number of points associated with the interval used for the azimuth angle, information indicating the method of selecting points within the interval used for the azimuth angle, information about the number of reference points associated with the integrated reference frame, or a method of selecting reference points associated with the integrated reference frame. The attribute parameter set may include at least one of the following: information indicating whether an integrated reference frame buffer is used, information about the maximum number of points within the interval associated with the azimuth angle used for the reference frame, information about the depth level of the octree associated with the reference frame, a quantization value associated with the reference frame, or a method of selecting points within the interval associated with the azimuth angle.
[0406] about For TPS, the tile parameter set may include at least one of the following: information indicating whether an integrated reference frame buffer for the tile is used, quantization values related to the azimuth angle applied to the tile, information about the maximum number of points in the interval related to the azimuth angle applied to the tile, a method for selecting points in the interval related to the azimuth angle, information about the number of reference points related to the integrated reference frame applied to the tile, a method for selecting reference points in the integrated reference frame applied to the tile, information about the amount of attribute data in the interval related to the azimuth angle applied to the tile, information about the octree depth level applied to the tile, information about the azimuth quantization of attribute data applied to the tile, or a method for selecting attribute data in the interval related to the azimuth angle applied to the tile.
[0407] about and For both GSH and ASH, the geometry data header may include at least one of the following: information indicating whether an integrated reference frame buffer for the slice is used, quantization values related to the azimuth angle applied to the slice, information about the maximum number of points in the interval related to the azimuth angle applied to the slice, a method for selecting points in the interval related to the azimuth angle, information about the number of reference points related to the integrated reference frame applied to the slice, or a method for selecting reference points in the integrated reference frame applied to the slice. The attribute data header may include at least one of the following: information indicating whether an integrated reference frame buffer for the slice is used, information about the maximum number of attribute data in the interval related to the azimuth angle applied to the slice, information about the octree depth level applied to the slice, quantization values of the attribute data applied to the slice, or a method for selecting attribute data in the interval.
[0408] Decoding methods can be derived from, for example The decoding apparatus shown performs this operation. The decoding apparatus may include a memory and at least one processor connected to the memory. The at least one processor may be configured to receive a bitstream including point cloud data and to decode the point cloud data.
[0409] The method / apparatus according to the embodiments provides the following effects.
[0410] When storing reference frames in a buffer for inter-frame prediction, if the geometry and attribute information use different coordinate systems, it may be necessary to store information in two different coordinate systems for a single reference frame. If only one of the two pieces of information is stored, additional coordinate transformations need to be performed in the decoder, which introduces computational overhead and increases complexity. Storing both pieces of information increases memory usage, potentially burdening the decoder. Applying bidirectional prediction may require even more computation and memory usage. Furthermore, global / local motion may be applied only to geometry or only to attributes. This can also increase the number of reference frames.
[0411] The implementation addresses the aforementioned technical problem through a reference frame buffer management method for applying predictive compression using reference frames to a point cloud captured by rotating LiDAR and having multiple frames.
[0412] Therefore, the embodiments provide a method for minimizing computational load and memory usage. Because the precision of the reference frame can be adjusted, noise can be removed even when the data contains a large amount of noise, thereby improving the compression efficiency of inter-frame prediction of point cloud data. Therefore, the transmission method / apparatus according to the embodiments can efficiently compress point cloud data, transmit data, and transmit its signaling information. The receiving method / apparatus according to the embodiments can also efficiently decode / reconstruct point cloud data.
[0413] The implementation methods have been described in accordance with the methods and / or apparatus, and the descriptions of the methods and apparatus may be applied to each other in a complementary manner.
[0414] For ease of description, each figure has been described individually. However, the embodiments described in the figures can be combined to achieve new embodiments. Furthermore, computer-readable recording media containing programs for performing the above embodiments, designed according to the needs of those skilled in the art, also fall within the scope of the embodiments. The apparatus and methods according to the embodiments are not limited to the configurations and methods of the above embodiments, and all or part of the embodiments can be selectively combined to make various modifications. Although preferred embodiments have been shown and described, the embodiments are not limited to the specific embodiments described above, and those skilled in the art can make various modifications without departing from the spirit of the embodiments claimed in the claims. These modifications should not be construed as departing from the technical spirit or scope of the embodiments.
[0415] The encoding method / apparatus according to the implementation may include reference The transmitting device 10000, the acquiring device 10001, the encoder 10002, and the transmitter 10003. Acquisition 20000, encoding 20001, and transmission 20002, , and encoder, Various devices, and Reference frame generation, Bitstream generation and The encoding describes the configuration and operation.
[0416] The decoding method / apparatus according to the embodiments may include reference The receiver 10004, receiver 10005, decoder 10006, and renderer 10007 are included. Decoding 20003 and rendering 20004, , and decoder Various devices, and Reference frame generation, Bitstream parsing and The decoding describes the configuration and operations.
[0417] The encoding / decoding apparatuses shown in the various figures according to embodiments may include a memory and a processor. The components shown in the various figures may correspond to hardware, software, a processor, and / or combinations thereof. The encoding / decoding method / apparatus according to embodiments may be simply referred to as a method / apparatus.
[0418] The method / apparatus according to the embodiments may include and perform reference frame buffer management operations for content captured by rotating light detection and ranging (LiDAR) (reference frame buffer management for 3D content captured by rotating LiDAR).
[0419] The implementation includes a reference frame buffer management method for inter-frame prediction compression in G-PCC of point cloud frames captured by a rotating LiDAR device. For example, the implementation may include a reference frame buffer management method for inter-frame prediction of geometry and attributes and / or a method for signaling parameter information related to reference frame buffer management for inter-frame prediction.
[0420] The implementation relates to a method for improving the compression efficiency of G-PCC for compressing 3D point cloud data.
[0421] A point cloud consists of a set of points, and each point can have geometric information and attribute information. The geometric information is three-dimensional position (XYZ) information, and the attribute information is color (RGB, YUV, etc.) and / or reflectance value.
[0422] The G-PCC encoding process may include dividing the point cloud into patches based on regions and further dividing each patch into slices for parallel processing. The G-PCC encoding process may include a process of compressing geometry on a slice-by-slice basis and a process of compressing attribute information based on reconstructed geometry (reconstructed geometry = decoded geometry) reconstructed from positional information altered by compression.
[0423] The G-PCC decoding process may include receiving geometric bitstreams and attribute bitstreams encoded in slices, decoding the geometry, and decoding attribute information based on the geometry reconstructed through the decoding process.
[0424] For the compression of geometric information, compression techniques based on octrees, compression techniques based on prediction trees, or compression techniques based on triplets can be used (compression techniques based on octrees can also be called compression techniques based on occupancy trees).
[0425] For compressing attribute information, compression techniques based on predictive transformation, compression techniques based on lifting transformation, or compression techniques based on region adaptive hierarchical transformation (RAHT) can be used.
[0426] The implementation includes a reference frame buffer management method for efficiently applying compression through inter-frame prediction of content captured by a LiDAR device.
[0427] A rotating LiDAR model according to an embodiment is illustrated.
[0428] The method and apparatus according to the embodiments can extract depth information using a LiDAR device of a radar system for capturing point cloud content. The radar system emits laser pulses and measures the return time of the reflected laser pulses to measure the position coordinates of the reflector. The point cloud content generated by the LiDAR device can consist of multiple frames, or the multiple frames can be integrated into a single content.
[0429] LiDAR can be generated from locations at different elevation angles θ(i) i = 1..N It consists of N lasers (N = 16, 32, 64, etc.), and the lasers can capture point cloud data while rotating (rotating) along an azimuth angle Φ relative to the Z-axis (see...). This type is called a rotating LiDAR model, and the content captured by a rotating LiDAR model has angular properties.
[0430] Laser i can illuminate object M, and the position of object M can be estimated in Cartesian coordinates as (x, y, z) (see [reference]). Due to the fixed position of the laser sensor, its linear travel characteristics, and its rotation at a constant azimuth angle, when the position of object M is represented as (r, Φ, i) instead of (x, y, z) in Cartesian coordinates, the position of object M can exhibit characteristics that allow for the derivation of regularity between points in a manner that favors compression.
[0431] Therefore, by leveraging this characteristic, compression efficiency can be further improved when applying angular patterns during the geometric encoding / decoding process of data captured by rotating LiDAR devices. Angular patterns are a method of performing compression using (r, Φ, i) instead of (x, y, z).
[0432] The geometric information is encoded / decoded to reconstruct the geometric position information, and the attribute information is compressed based on the reconstructed position. In this case, either a Cartesian coordinate system or an angular model can be selectively used for the attribute information. Typically, a Cartesian coordinate system is used primarily.
[0433] Therefore, when storing a reference frame in a buffer for inter-frame prediction, if the geometric and attribute information use different coordinate systems, it may be necessary to store information in two different coordinate systems for a single reference frame. If only one of the two pieces of information is stored, additional coordinate transformations need to be performed in the decoder, which introduces computational overhead and increases complexity. Storing both pieces of information increases memory usage, which can burden the decoder. Applying bidirectional prediction may require even more computation and more memory usage.
[0434] Furthermore, global / local motion can be applied only to geometry or only to attributes. This can also increase the number of reference frames.
[0435] The implementation includes a reference frame buffer management method for applying predictive compression using reference frames to a point cloud captured by rotating LiDAR and having multiple frames. The implementation minimizes computational load and memory usage.
[0436] The encoding / decoding method according to the implementation includes the following reference frame buffer management method. For example, the encoding / decoding method may include 1) a reference frame buffer configuration step, 2) a reference frame generation step for encoding or decoding prediction tree-based geometry (referred to as geometric data), 3) a reference frame generation step for encoding or decoding attribute information (referred to as attribute data), and / or 4) an integrated reference frame generation step for geometric data and / or attribute data. The operation of each step is described below.
[0437] 1) Reference frame buffer configuration steps: The method / apparatus according to the implementation uses a reference frame for inter-frame prediction. A point that geometrically matches a point in the current frame can be found in the reference frame, and prediction can be performed based on the selected reference point. The residual value can be entropy-encoded based on the reference point having the smallest residual value among the differences between the predicted value and the value of the current point, and the residual value can be sent to the decoder.
[0438] Therefore, the reference frame can essentially be the previous frame, the accumulated frame, or, when using bidirectional prediction, one or more frames. The current frame can be referred to as the first frame, and the reference frame can be referred to as the second frame.
[0439] Points in the reference frame may have geometric information based on a Cartesian coordinate system or geometric information based on an angular coordinate system. Furthermore, the points may have both types of information.
[0440] 2) Reference frame generation steps for encoding or decoding prediction tree-based geometry (which may be referred to as geometric data): When encoding or decoding the geometric data of point cloud data based on the content obtained by rotating LiDAR using a prediction tree, it may be efficient to convert the encoding / decoding mode to an angular mode and perform compression and reconstruction.
[0441] During prediction tree-based geometric inter-frame prediction coding, the reference frame can be stored as reference point information based on the azimuth angle Φ.
[0442] To divide the entire 360-degree range into multiple intervals, the entire angle can be divided by any value (geom_quant: quantization value). The quantization value can be sent from the encoder to the decoder as parameter signaling information, or it can be set to any value and used in the encoder / decoder.
[0443] A specific number (geom_N) of points can be stored in intervals divided by quantization values. One point or multiple points can be stored. The number of points (geom_N) can be set as an option and sent as parameter signaling information from the encoder to the decoder. The decoder also needs to store points corresponding to the number of points (geom_N) so that both the encoder and decoder can use the same number of reference points to perform inter-frame prediction. For example, in predictive geometry encoding / decoding, 1 can be used as the number of points (geom_N).
[0444] When sorting points based on azimuth angle Φ, the interval can be obtained by dividing azimuth angle Φ by the quantization value (geom_quant), and the points in that interval can be stored. Various methods can be applied to store the points corresponding to the number of points (geom_N) in that interval.
[0445] For example, up to geom_N points can be stored starting from the first point in the sorted order; up to geom_N points can be stored in ascending order of the azimuth range; up to geom_N points can be stored starting from the last point; up to geom_N points can be stored in descending order of the azimuth range; and / or up to geom_N points can be stored by downsampling (e.g., points existing within the azimuth range can be sampled based on a specific angle, and the sampled points can be stored).
[0446] Information about the method for storing reference point information for reference frames can be sent from the encoder to the decoder as parameter information. The encoder / decoder can use the same number of reference points to perform inter-frame prediction.
[0447] 3) Reference frame generation steps for encoding or decoding attribute information (also known as attribute data): Cartesian coordinate system mode can be used during the compression (predictive transform, lifting transform, and RAHT transform) / reconstruction of attribute information (attribute data). Angular mode can also be used for attribute information compression / reconstruction. The reference frame used for inter-frame prediction of attribute information can also store point information of the coordinate system used in the current frame.
[0448] When a different coordinate system is used in attribute encoding (encoding / decoding) than the coordinate system used for geometry encoding, a separate reference frame can be generated.
[0449] When using the same coordinate system for attribute encoding (encoding / decoding) as the coordinate system used for geometry encoding, a reference frame for geometry can also be used.
[0450] Coordinate system information can be identified through parameter information (which is signaling information in the G-PCC bitstream, such as the spherical coordinate system flag in the geometric parameter set and / or attribute parameter set).
[0451] When reference frames are stored separately due to different coordinate systems used for geometry encoding and attribute encoding, the number of points to be stored for the attribute reference frame can be specified via the point count information (attr_N). When attr_N = -1, all coordinates can be stored. The value of attr_N can be sent from the encoder to the decoder as parameter signaling information.
[0452] Various methods can be applied to store points in the reference frame.
[0453] For example, when the coordinate mode is Cartesian coordinates, up to attr_N points can be stored among the points existing at a node at a specific octree depth level. The octree depth level (attr_occtree_node_level) is sent from the encoder to the decoder as parameter signaling information.
[0454] For example, when the coordinate mode is angular coordinates, the interval can be determined by dividing the Φ value by the quantization value (attr_quant) based on the angular coordinates, and the point corresponding to the interval can be selected and stored in the reference frame using the following method.
[0455] For example, up to attr_N points can be stored starting from the first point; up to attr_N points can be stored in ascending order of the midpoint of the azimuth range; up to attr_N points can be stored starting from the last point; up to attr_N points can be stored in descending order of the midpoint of the azimuth range; and / or up to attr_N points can be stored by downsampling (e.g., points existing within the azimuth range can be sampled based on a specific angle, and the sampled points can be stored).
[0456] Although the coordinates of the attribute information are in Cartesian coordinates, Cartesian coordinate point values can be stored simply by changing the container based on angular coordinates.
[0457] The storage method is also signaled to the decoder. Therefore, the encoder / decoder can use the same reference point to perform inter-frame prediction. In the case of angular coordinates, the attr_quant value can be sent to the decoder, or it can be set to any value and used in the encoder / decoder.
[0458] 4) Steps for generating integrated reference frames for geometric and / or attribute data
[0459] To minimize computational load and memory usage, an integrated reference frame can be generated for both geometry and attribute encoding. Whether to use the integrated reference frame can be signaled to the decoder. Whether the same coordinate system is used for geometry and attribute encoding can be identified through parameter information (which is signaling information in the bitstream).
[0460] When using an integrated reference frame, the coordinate system of the attribute information is prioritized. Since compression efficiency can be improved when the attribute information references more points with Φ values, the reference frame is generated by prioritizing the coordinate system of the attribute information. That is, geometric / attribute information can be stored in the reference frame according to the coordinate system used during attribute compression. The integrated reference frame can be called an attribute reference frame. Attribute reference frames can be used to perform inter-frame predictive coding / decoding of geometric and attribute information.
[0461] When both geometric and attribute information use Cartesian coordinates, up to attr_N points can be stored among the points existing at a node at a specific octree depth level.
[0462] The octree depth level (attr_occtree_node_level) and attr_N value are signaled to the decoder.
[0463] When using angular coordinates during geometric compression, or when using angular coordinates during both geometric and attribute compression, an interval can be determined by dividing the Φ value by the attr_quant value based on the angular coordinates, and the corresponding attr_N points can be stored. The attr_N value is signaled to the decoder.
[0464] The following methods can be used to select and store attr_N points in the reference frame: store up to attr_N points starting only from the first point; store up to attr_N points in ascending order of the midpoint of the azimuth range; store up to attr_N points starting only from the last point; store up to attr_N points in descending order of the midpoint of the azimuth range; and / or store up to attr_N points only by downsampling (e.g., points existing within the azimuth range can be sampled based on a specific angle, and the sampled points can be stored).
[0465] The attr_quant value, attr_N value, and point selection method can be sent to the decoder. Alternatively, the attr_quant value, attr_N value, and point selection method can be set to arbitrary values and used in the encoder / decoder.
[0466] When using an integrated reference frame, a reference frame is generated based on a coordinate system with attribute information. When using reference frames in inter-frame compression of geometry based on a prediction tree, the method for specifying reference points in each partitioned region (octree node or azimuth range) can be set. The number of points used for geometry (geom_N) can also be specified individually. The number of points (geom_N) can have a value of 1.
[0467] Regarding point selection, the method / apparatus according to the implementation may select up to geom_N points starting only from the first point; select up to geom_N points only in ascending order of the median value of the azimuth range; select up to geom_N points only starting only from the last point; select up to geom_N points only in descending order of the median value of the azimuth range; and / or select up to geom_N points only by downsampling (e.g., points existing within the azimuth range may be sampled based on a specific angle, and the sampled points may be selected).
[0468] When attribute information and geometry have different coordinate systems, coordinate system transformation can be performed only for selected points. This can be done in the decoder / encoder. Therefore, inter-frame prediction can be performed using a reference frame buffer with minimal memory usage and minimal transformation operations.
[0469] An encoding device according to an embodiment is illustrated.
[0470] The PCC data encoding is illustrated, and the components may correspond to hardware, software, processors, and / or combinations thereof. PCC data can be input to the encoder and encoded to output a geometric information bitstream and an attribute information bitstream.
[0471] According to the implementation method The encoding device can perform reference The transmitting device 10000, the acquiring device 10001, the encoder 10002, and the transmitter 10003. Acquisition 20000, encoding 20001, and transmission 20002, and encoder, Various devices, and Reference frame generation, Bitstream generation, The operations described, such as encoding. The device may include a memory and a processor, and the processor may execute... The functions of each unit.
[0472] The data input unit can read and set the data input by the acquirer (e.g., PLY file, configuration file, etc.).
[0473] Coordinate transformers can perform coordinate system transformations, such as changing the XYZ axes of a coordinate system or converting an XYZ Cartesian coordinate system to a spherical coordinate system.
[0474] The geometric information transformation and quantization processor can adjust the scaling by multiplying the geometric position X, Y, and Z values of point cloud points by a scaling value according to the scaling configuration (geometric quantization value).
[0475] Spatial partitioners can divide content into chunks or slices for regional access or parallel processing of content.
[0476] The voxelization processor can round the geometric position values of points with applied scaling values to integers.
[0477] Geometric information intra-frame predictors can apply geometric intra-frame coding. Intra-frame coding methods can include octree coding, prediction tree coding, triad coding, etc.
[0478] When the frame is a P-frame, the LPU / PU partitioner can divide the points into slices into LPUs / PUs to support inter-frame prediction, and can find and assign motion vectors corresponding to the divided regions.
[0479] Motion compensators can generate predicted point clouds by applying motion vectors to the LPU / PU of a partition.
[0480] The geometric information inter-frame predictor can perform octree-based inter-frame coding, prediction tree-based inter-frame coding, or triad-based inter-frame coding based on the difference between the predicted values of the current frame and the reference frame with motion compensation applied.
[0481] The geometric entropy encoder can entropy encode the results of the geometric information intra / inter frame predictor.
[0482] The color conversion processor can convert attribute types, such as changing RGB colors to YUV.
[0483] The color recalibrator can predict attribute values suitable for the changed location when scaling and changing position information (geometric data) values in a geometry application.
[0484] The attribute information intra-frame predictor can perform attribute information intra-frame coding. Intra-frame coding methods may include predictive transform coding, lifting transform coding, RAHT coding, etc.
[0485] The attribute information inter-frame predictor can generate residual values based on the difference between the attribute values of the current frame and the attribute prediction values of a reference frame with motion compensation applied.
[0486] The attribute information entropy encoder can entropy encode the results of the attribute information intra / inter-frame predictor.
[0487] The reference frame generator can store the reconstructed geometry and reconstructed attribute information in the reference frame buffer, and can transfer reference frame data from the reference frame to another module.
[0488] The operation of the reference frame generator according to the implementation method is as follows.
[0489] The reference frame generator can store reference frames in a reference frame buffer.
[0490] The reference frame generator can store reference frames for geometry encoding. Refer to the description of step 2) above.
[0491] The reference frame generator can store reference frames for attribute encoding. Refer to the description of step 3) above.
[0492] When the coordinate systems used for geometric encoding and attribute encoding are the same, the reference frame generator can use a single reference frame.
[0493] When the coordinate systems used for geometric encoding and attribute encoding are different, and an integrated reference frame is to be used, the reference frame generator can store the reference frame through the integrated frame generation process described in step 4) above.
[0494] When the coordinate systems used for geometry encoding and attribute encoding are different, and an integrated reference frame is to be used, the reference frame generator can transmit the reference frame according to the process of transmitting geometry information from the integrated frame as described in step 4) above.
[0495] An example of a decoding apparatus according to an embodiment is shown.
[0496] The PCC data decoder is shown, and the components may correspond to hardware, software, processors, and / or combinations thereof. Encoded geometric information bitstreams and attribute information bitstreams can be input to the decoder for decoding and output as reconstructed PCC data.
[0497] The decoding device can perform reference The receiver 10004, receiver 10005, decoder 10006, and renderer 10007 are included. Decoding 20003 and rendering 20004, , and decoder Various devices, and Reference frame generation, Bitstream parsing, The operations described, such as decoding. The device may include a memory and a processor, and the processor may execute... The functions of each unit.
[0498] The geometric entropy decoder can perform entropy decoding on geometric bitstreams.
[0499] The geometric information intra-frame prediction reconstructor can reconstruct the predicted values predicted by geometric intra-frame coding. Intra-frame coding methods can include octree coding, prediction tree coding, triad coding, etc.
[0500] When the frame is a P-frame, the LPU / PU partitioner can reconstruct the signaling region values used to indicate LPU / PU partitions to support inter-frame prediction, and can partition reference frames into LPUs / PUs.
[0501] Motion compensators can generate predicted point clouds by applying motion vectors to the LPU / PU of a partition.
[0502] The geometric information inter-frame prediction reconstructor can reconstruct the predicted values predicted by geometric inter-frame coding. Inter-frame coding methods can include octree-based inter-frame coding methods, prediction tree-based inter-frame coding methods, triad-based inter-frame coding methods, etc.
[0503] The inverse coordinate system transformer can restore the changed XYZ axes, or inversely transform the transformed coordinate system back to the XYZ Cartesian coordinate system.
[0504] The geometric information transformation and inverse quantization processor can recover the scaling value (geometric quantization value) notified by the signal and apply the recovered scaling value to the recovered geometric position X, Y, and Z values of the point to perform the recovery.
[0505] The attribute residual information entropy decoder can perform entropy decoding on the attribute bitstream.
[0506] The attribute-information intra-prediction reconstructor can reconstruct the predicted values predicted by attribute-information intra-coding. Intra-coding methods may include prediction transform coding, lifting transform coding, RAHT coding, etc.
[0507] The attribute information inter-frame prediction reconstructor can reconstruct the predicted values predicted by attribute information inter-frame coding.
[0508] The color inverse conversion processor can restore the converted attributes to RGB colors.
[0509] The reference frame generator can store the reconstructed geometry and reconstructed attribute information in the reference frame buffer, and can transfer reference frame data from the reference frame to another module.
[0510] The reference frame generator according to the implementation method may perform the following operations.
[0511] The reference frame generator can store reference frames in a reference frame buffer.
[0512] The reference frame generator can store reference frames for geometry encoding. Reference frames can be stored using the process described in step 2) above.
[0513] The reference frame generator can store reference frames for attribute encoding. Reference frames can be stored using the process described in step 3) above.
[0514] When the coordinate systems used for geometric encoding and attribute encoding are the same, the reference frame generator can use a single reference frame.
[0515] When the coordinate systems used for geometric encoding and attribute encoding are different, and an integrated reference frame is to be used, the reference frame generator can store the reference frame through the integrated frame generation process described in step 4) above.
[0516] When the coordinate systems used for geometry encoding and attribute encoding are different, and an integrated reference frame is to be used, the reference frame generator can transmit the reference frame according to the process of transmitting geometry information from the integrated frame as described in step 4) above.
[0517] A detailed flowchart of the reference frame generation method performed by the encoder and decoder is shown below. As shown.
[0518] An example of a reference frame generation method according to an implementation method is shown.
[0519] When the encoder and / or decoder request to store a reference frame, it is determined whether the geometrically encoded coordinate system and the attribute-encoded coordinate system are the same or different from each other. If the geometrically encoded coordinate system and the attribute-encoded coordinate system are the same, it is checked whether the attribute-encoded coordinate system is a Cartesian coordinate system. When the attribute-encoded coordinate system is a Cartesian coordinate system, N points can be sampled for each interval (or region) based on octree nodes according to a specified method and stored in the frame buffer. When the attribute-encoded coordinate system is not a Cartesian coordinate system but an angular coordinate system, intervals (or regions) can be generated based on azimuth angles by dividing the angle by the quantization value, and N points can be sampled for each interval according to a specified method and stored in the frame buffer.
[0520] When the geometrically encoded coordinate system and the attribute-encoded coordinate system are different from each other, it is determined whether to use an integrated frame for geometry and attributes. When using an integrated frame, as described above, intervals can be configured based on octree nodes or azimuth angles depending on whether the attribute-encoded coordinate system is a Cartesian coordinate system or an angular coordinate system, and N points in each interval can be stored in a reference frame according to a specified method.
[0521] When not using an integrated frame, check if the geometrically encoded coordinate system is a Cartesian coordinate system. If the geometrically encoded coordinate system is a Cartesian coordinate system, generate intervals based on octree nodes, and sample N points for each interval according to a specified method and store them in the frame buffer.
[0522] When the geometric coding coordinate system is not a Cartesian coordinate system but an angular coordinate system, intervals are generated based on the azimuth angle, and N points are sampled for each interval according to a specified method and stored in the frame buffer.
[0523] An example of a reference frame generation method according to an implementation method is shown.
[0524] When the encoder and / or decoder requests reference points for geometry encoding from the reference frame, they check whether the geometry encoding coordinate system and the attribute encoding coordinate system are identical. If the two coordinate systems are identical, they check whether the attribute encoding coordinate system is a Cartesian coordinate system. When the attribute encoding coordinate system is a Cartesian coordinate system, geom_N reference points can be selected from the geometry reference points in each interval generated based on octree nodes according to a specified method, and the selected reference points are transmitted to the encoder and / or decoder. When the attribute encoding coordinate system is not a Cartesian coordinate system but an angular coordinate system, geom_N reference points can be selected from the points in each interval generated based on the azimuth angle by dividing the angle by the quantization value according to a specified method, and the selected reference points are transmitted to the encoder and / or decoder and stored in the reference frame buffer.
[0525] When the geometrically encoded coordinate system and the attribute-encoded coordinate system are different from each other, it is possible to check whether to use an integrated frame. When using an integrated frame, one of the above-mentioned reference point selection based on octree nodes and the above-mentioned reference point selection based on azimuth angle can be performed depending on whether the attribute-encoded coordinate system is a Cartesian coordinate system or an angular coordinate system, and the reference point can be stored in the reference frame buffer.
[0526] When not using an integrated frame, check if the geometrically encoded coordinate system is a Cartesian coordinate system. If the geometrically encoded coordinate system is a Cartesian coordinate system, perform the reference point selection based on octree nodes as described above. If the geometrically encoded coordinate system is not a Cartesian coordinate system but an angular coordinate system, perform the reference point selection based on azimuth angle as described above, and store the reference points in the reference frame buffer.
[0527] When the geometrically encoded coordinate system and the attribute-encoded coordinate system are different from each other, the coordinate system of the selected point can be changed based on the geometrically encoded coordinate system, and the reference point can be stored in the reference frame buffer.
[0528] An example of a reference frame generation method according to an implementation method is shown.
[0529] When the encoder and / or decoder requests reference points for attribute encoding from the reference frame, they check whether the attribute encoding coordinate system is a Cartesian coordinate system. If the attribute encoding coordinate system is a Cartesian coordinate system, N reference points can be selected from the geometric reference points in each interval generated based on octree nodes according to a specified method, and the selected reference points are stored in the reference frame buffer.
[0530] If the attribute encoding coordinate system is not a Cartesian coordinate system, check if the attribute encoding coordinate system is an angular coordinate system. If the attribute encoding coordinate system is an angular coordinate system, select N reference points from each interval generated using quantized values based on the azimuth angle according to a specified method, and store the selected reference points in the reference frame buffer.
[0531] A bitstream according to an implementation method is illustrated.
[0532] The encoding method / apparatus according to the implementation method ( The transmitting device 10000, the acquiring device 10001, the encoder 10002, and the transmitter 10003. Acquisition 20000, encoding 20001, and transmission 20002, , and encoder, Various devices, and Reference frame generation, Bitstream generation, Encoding (such as coding) can encode point cloud data, generate relevant parameter information, and generate encoded point clouds.
[0533] Decoding method / apparatus according to the implementation method ( The receiver 10004, receiver 10005, decoder 10006, and renderer 10007 are included. Decoding 20003 and rendering 20004, , and decoder Various devices, and Reference frame generation, (Decoding, etc.) can be parsed The bitstream, and based on the parameter set information in the bitstream ( This is used to decode point cloud data.
[0534] Each abbreviation indicating information in the bitstream has the following meaning. Each abbreviation may be referenced by another term within the scope of its equivalent meaning: SPS: Sequence Parameter Set, GPS: Geometric Parameter Set, APS: Attribute Parameter Set, TPS: Patch Parameter Set, Geom: Geometric Bitstream = Geometric Slice Header + [Geometric PU Header + Geometric PU Data] | Geometric Slice Data, Attr: Attribute Bitstream = Attribute Data Unit Header + [Attribute PU Header + Attribute PU Data] | Attribute Data Unit Data.
[0535] According to the implementation, option information associated with the reference frame buffer can be added to the SPS, GPS, and / or TPS and signaled. Option information associated with the reference frame buffer can be added to the TPS or the geometric header and / or attribute header of each slice and signaled. Tiles or slices are provided so that the point cloud can be divided and processed by region. When the point cloud is divided by region, different neighbor point set generation options can be configured for each region, thereby providing a selection scheme with low complexity and low reliability or conversely, a selection scheme with high complexity and high reliability. Different settings can be configured according to the receiver's processing capabilities. Therefore, when point cloud data is divided into tiles, different options can be applied to each tile. When point cloud data is divided into slices, different options can be applied to each slice.
[0536] The following describes the parameter information included in the bitstream with reference to the accompanying figures.
[0537] An example of SPS in a bitstream according to an implementation method is shown.
[0538] According to the implementation, option information associated with the reference frame buffer can be added to the SPS and signaled to support efficient inter-frame prediction signaling and inter-frame prediction compression.
[0539] Profile (profile_idc): A configuration file that indicates the bitstream conformance.
[0540] Profile compatibility flags: Indicate that when the profile compatibility flag is 1, the bitstream follows the profile with profile_idc set to j.
[0541] Number of attribute sets (sps_num_attribute_sets): Indicates the number of encoded attributes in the bitstream. The value of sps_num_attribute_sets can range from 0 to 63.
[0542] Attribute dimension[i]: Indicates the number of components of the i-th attribute.
[0543] Attribute instance ID (attribute_instance_id[i]): Indicates the instance ID of the i-th attribute.
[0544] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether an integrated reference frame buffer is used for the sequence.
[0545] GPS in a bitstream according to an implementation method is illustrated.
[0546] According to the implementation, option information related to the reference frame buffer used in the geometric information encoding / decoding process can be added to the GPS and signaled to support efficient inter-frame prediction signaling.
[0547] Geometry parameter set ID (gps_geom_parameter_set_id): Indicates a GPS identifier that can be referenced by another syntax element. The value of gps_seq_parameter_set_id can be in the range of 0 to 15.
[0548] Sequence Parameter Set ID (gps_seq_parameter_set_id): Indicates the value of sps_seq_parameter_set_id that activates the SPS. The value of gps_seq_parameter_set_id can be in the range of 0 to 15.
[0549] Geometry tree type (geom_tree_type): When the value of geom_tree_type is 0, it indicates that an octree (occupancy tree) is used to encode the location information. When the value of geom_tree_type is 1, it indicates that a prediction tree is used to encode the location information.
[0550] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for a frame.
[0551] Geometric quantization (geom_quant): Indicates the value (quantization value) used to divide the azimuth angle applied to the frame into arbitrary intervals.
[0552] Geometry Quantity (geom_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the frame.
[0553] Geom_sampling_method_type: Indicates the method for selecting geom_N points for each interval divided by the azimuth angle applied to the frame. For example, the sampling method type information can be signaled as follows: when the value is 0, select and store up to geom_N points starting only from the first point; when the value is 1, select and store up to geom_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to geom_N points only starting only from the last point; when the value is 3, select and store up to geom_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store points by downsampling.
[0554] Geometry Extraction Count (geom_extract_N): Indicates the maximum number of points applied to a frame, and how many reference points are obtained from and used when using an integrated reference frame.
[0555] Geom_extract_sampling_method_type: Indicates the method applied to the frame when using an integrated reference frame for selecting geom_N points from the reference frame for each interval divided by the azimuth angle applied to the frame. For example, the point selection sampling method type information can be signaled as follows: when the value is 0, up to geom_N points are selected only from the first point; when the value is 1, up to geom_N points are selected only in ascending order of the midpoint of the azimuth angle range; when the value is 2, up to geom_N points are selected only from the last point; when the value is 3, up to geom_N points are selected only in descending order of the midpoint of the azimuth angle range; when the value is 4, up to geom_N points are selected only by downsampling.
[0556] An example of an APS in a bitstream according to an implementation method is shown.
[0557] According to the implementation, parameter information for the reference frame buffer can be added to the APS and signaled to support an efficient reference frame buffer.
[0558] Attribute parameter set ID (aps_attr_parameter_set_id): Indicates the APS identifier that can be referenced by another syntax element. The value of aps_attr_parameter_set_id can be in the range of 0 to 15.
[0559] Sequence Parameter Set ID (aps_seq_parameter_set_id): Indicates the value of sps_seq_parameter_set_id that activates the SPS. The value of aps_seq_parameter_set_id can be in the range of 0 to 15.
[0560] Lifting_num_pred_nearest_neighbours: Indicates the maximum number of nearest neighbors to use for prediction.
[0561] `lifting_max_num_direct_predictors`: Indicates the maximum number of predictors to use for direct prediction. The value of `lifting_max_num_direct_predictors` ranges from 0 to `lifting_num_pred_nearest_neighbours`. The values of the variable `MaxNumPredictors` used during decoding are as follows: Maximum number of predictors (MaxNumPredictors) = Maximum number of direct predictors (lifting_max_num_direct_predicots) + 1 Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for a frame.
[0562] Attribute count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the frame.
[0563] Attribute tree node level (attr_occtree_node_level): Indicates the octree depth level value when using a Cartesian coordinate system applied to the frame. This value is used to determine intervals based on the octree (occupancy tree).
[0564] Attribute quantization (attr_quant): Indicates the value used to divide the azimuth angle applied to the frame into arbitrary intervals.
[0565] Attribute count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the frame.
[0566] Attribute sampling method type (attr_sampling_method_type): Indicates the method for selecting attr_N points for each interval divided by the azimuth angle applied to the frame. For example, the attribute sampling method type can be signaled as follows: when the value is 0, select and store up to attr_N points starting only from the first point; when the value is 1, select and store up to attr_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to attr_N points only starting from the last point; when the value is 3, select and store up to attr_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store up to attr_N points only by downsampling.
[0567] The TPS in a bitstream according to the implementation method is illustrated.
[0568] According to the implementation, parameter information for the reference frame buffer can be added to the TPS and signaled to support an efficient reference frame buffer.
[0569] Number of tiles (num_tiles): Indicates the number of tiles signaled to the bitstream. When this value is not present, num_tiles is inferred to be 0.
[0570] Tile bounding box offset x (tile_bounding_box_offset_x[i]): Indicates the x-offset of the i-th tile in Cartesian coordinates. When this value does not exist, the value of tile_bounding_box_offset_x[0] is inferred to be sps_bounding_box_offset_x.
[0571] Tile bounding box offset y (tile_bounding_box_offset_y[i]): Indicates the y-offset of the i-th tile in Cartesian coordinates. When this value does not exist, the value of tile_bounding_box_offset_y[0] is inferred to be sps_bounding_box_offset_y.
[0572] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for the tile.
[0573] Geometric quantization (geom_quant): Indicates the value used to divide the azimuth angle applied to the tile into arbitrary intervals.
[0574] Geometry Quantity (geom_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the tile.
[0575] Geometry sampling method type (geom_sampling_method_type): Indicates the method for selecting geom_N points for each interval divided by the azimuth angle applied to the tile. For example, the geometry sampling method type can be signaled as follows: when the value is 0, select and store up to geom_N points starting only from the first point; when the value is 1, select and store up to geom_N points only in ascending order of the midpoint of the azimuth range; when the value is 2, select and store up to geom_N points only starting only from the last point; when the value is 3, select and store up to geom_N points only in descending order of the midpoint of the azimuth range; when the value is 4, select and store points by downsampling.
[0576] Geometry Extraction Count (geom_extract_N): Indicates the maximum number of points applied to the tile and how many reference points are obtained from and used when using an integrated reference frame.
[0577] Geom_extract_sampling_method_type: Indicates the method used to select geom_N points from the reference frame for each interval divided by the azimuth angle applied to the tile when using an integrated reference frame. For example, the geom_extract sampling method can be signaled as follows: when the value is 0, select up to geom_N points only starting from the first point; when the value is 1, select up to geom_N points only in ascending order of the midpoint of the azimuth range; when the value is 2, select up to geom_N points only starting from the last point; when the value is 3, select up to geom_N points only in descending order of the midpoint of the azimuth range; when the value is 4, select up to geom_N points only by downsampling.
[0578] Attribute Count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth applied to the tile.
[0579] Attribute occtree node level (attr_occtree_node_level): When using a Cartesian coordinate system applied to the tile, this indicates the occtree (occupancy tree) depth level value. This value is used to determine intervals based on the occtree (occupancy tree).
[0580] Attribute quantization (attr_quant): Indicates the value used to divide the azimuth angle applied to the tile into arbitrary intervals.
[0581] Attribute Count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth applied to the tile.
[0582] Attribute sampling method type (attr_sampling_method_type): Indicates the method for selecting attr_N points for each interval divided by the azimuth angle applied to the tile. For example, the attribute sampling method type can be signaled as follows: when the value is 0, select and store up to attr_N points starting only from the first point; when the value is 1, select and store up to attr_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to attr_N points only starting from the last point; when the value is 3, select and store up to attr_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store up to attr_N points only by downsampling.
[0583] An example is shown of a geometric slice header (GSH) in a bitstream according to an implementation.
[0584] According to the implementation, the geometric prediction tree encoding option information for each LPU / PU used in the geometric information encoding / decoding process can be added to the GSH and notified by signal.
[0585] Geometry parameter set ID (gsh_geometry_parameter_set_id): Indicates the value of gps_geom_parameter_set_id for which GPS is activated.
[0586] Tile ID (gsh_tile_id): Indicates the tile ID value referenced by GSH.
[0587] Slice ID (gsh_slice_id): Indicates the slice header to be referenced by another syntax element.
[0588] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for slices.
[0589] Geometric quantization (geom_quant): Indicates the value used to divide the azimuth angle applied to the slice into arbitrary intervals.
[0590] Geometry Quantity (geom_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the slice.
[0591] Geometry sampling method type (geom_sampling_method_type): Indicates the method for selecting geom_N points for each interval divided by the azimuth angle applied to the slice. For example, the geometry sampling method type can be signaled as follows: when the value is 0, select and store up to geom_N points starting only from the first point; when the value is 1, select and store up to geom_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to geom_N points only starting only from the last point; when the value is 3, select and store up to geom_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store points by downsampling.
[0592] Geometry Extraction Count (geom_extract_N): Indicates the maximum number of points applied to the slice, and how many reference points are obtained from and used when using an integrated reference frame.
[0593] Geom_extract_sampling_method_type: Indicates the method used to select geom_N points from the reference frame for each interval divided by the azimuth angle applied to the slice when using an integrated reference frame. For example, the geom_extract_sampling_method_type can be signaled as follows: when the value is 0, up to geom_N points are selected only from the first point; when the value is 1, up to geom_N points are selected only in ascending order of the midpoint of the azimuth angle range; when the value is 2, up to geom_N points are selected only from the last point; when the value is 3, up to geom_N points are selected only in descending order of the midpoint of the azimuth angle range; when the value is 4, up to geom_N points are selected only by downsampling.
[0594] An example is shown of the attribute slice header (ASH) in a bitstream according to an implementation method.
[0595] According to the implementation method, parameter information for encoding reflectance properties can be added to the ASH and signaled to support efficient reflectance property compression.
[0596] Attribute parameter set ID (abh_attr_parameter_set_id): Indicates the value of aps_attr_parameter_set_id for activating APS.
[0597] The attribute index of the SPS (abh_attr_sps_attr_idx): indicates the set of attributes that are active in the SPS. The value of abh_attr_sps_attr_idx can be in the range of 0 to sps_num_attribute_sets in the active SPS.
[0598] Attribute Geometry Slice ID (ash_attr_geom_slice_id): Indicates the value of the slice ID (gsh_slice_id) that activates GSH.
[0599] Integrated reference frame buffer usage flag (integrated_reference_frame_buffer_usage_flag): Indicates whether the integrated reference frame buffer is used for a frame.
[0600] Attribute Count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth applied to the tile.
[0601] Attribute occtree node level (attr_occtree_node_level): When using a Cartesian coordinate system applied to the slice, this indicates the depth level value of the occtree (occupancy tree). This value is used to determine intervals based on the occtree (occupancy tree).
[0602] Attribute quantization (attr_quant): Indicates the value used to divide the azimuth angle applied to the slice into arbitrary intervals.
[0603] Attribute count (attr_N): Indicates the maximum number of points used to store points for each interval divided by the azimuth angle applied to the slice.
[0604] Attribute sampling method type (attr_sampling_method_type): Indicates the method for selecting attr_N points for each interval divided by the azimuth angle applied to the slice. For example, the attribute sampling method type can be signaled as follows: when the value is 0, select and store up to attr_N points starting only from the first point; when the value is 1, select and store up to attr_N points only in ascending order of the midpoint of the azimuth angle range; when the value is 2, select and store up to attr_N points only starting only from the last point; when the value is 3, select and store up to attr_N points only in descending order of the midpoint of the azimuth angle range; when the value is 4, select and store up to attr_N points only by downsampling.
[0605] An example of an encoding method according to an implementation method is shown.
[0606] The encoding method according to the implementation may include encoding point cloud data (S2400) and / or transmitting a bit stream including point cloud data (S2410).
[0607] Point cloud data can be represented based on at least one of radius, azimuth, or laser index. Encoding the point cloud data (S2400) may include encoding geometric data of the point cloud data based on inter-frame prediction and encoding attribute data of the point cloud data based on inter-frame prediction. Encoding geometric data and encoding attribute data may each further include generating a reference frame.
[0608] Generating a reference frame may include generating a reference frame for decoding geometric data based on a prediction tree for the point cloud data. Reference points in the reference frame may be ordered based on azimuth angles. At least one reference point for a given interval in the reference frame, generated based on quantization values, may be stored in a buffer used for the reference frame. When multiple reference points exist in the interval, a first number of points from the multiple reference points may be stored in the buffer based on at least one of the sorting order or azimuth angle range.
[0609] Generating a reference frame may include: generating a reference frame for decoding the attribute data when the coordinate system of the attribute data is different from that of the geometric data; decoding the attribute data based on the reference frame used for the geometric data when the coordinate system of the attribute data is the same as that of the geometric data; generating a first number of attribute data as reference frames based on an octree for the point cloud data when the coordinate system of the attribute data is a Cartesian coordinate system; and generating a first number of attribute data as reference frames based on an azimuth angle when the coordinate system of the attribute data is an angular coordinate system, and selecting the first number of attribute data based on at least one of the sorting order or the azimuth angle.
[0610] Implementation methods may also include storing data from... The method generates a computer-readable storage medium for a bitstream.
[0611] The implementation may also include a method comprising obtaining a bitstream of point cloud data and transmitting data including the bitstream. The bitstream may be generated based on encoding the point cloud data.
[0612] A decoding method according to an embodiment is illustrated.
[0613] The decoding method according to the embodiment may include receiving a bit stream including point cloud data (S2500) and / or decoding the point cloud data (S2510). The decoding method can follow The reverse process of the encoding method.
[0614] Reference LiDAR data characteristics and The decoder configuration allows point cloud data to be represented based on at least one of radius, azimuth, or laser index. Decoding the point cloud data (S2510) may include decoding the geometric data of the point cloud data based on inter-frame prediction and decoding the attribute data of the point cloud data based on inter-frame prediction. Decoding the geometric data and decoding the attribute data may each further include generating a reference frame.
[0615] Regarding the generation of reference frames for prediction tree-based geometry encoding, generating reference frames may include generating reference frames for decoding geometry data based on a prediction tree for point cloud data. Reference points in the reference frame may be ordered based on azimuth angles. At least one reference point for a given interval in the reference frame, generated based on quantization values, may be stored in a buffer for the reference frame. When multiple reference points exist in the interval, a first number of points from the multiple reference points may be stored in the buffer based on at least one of the sorting order or azimuth angle range.
[0616] Regarding the generation of reference frames for information encoding, generating reference frames may include: when the coordinate system of the attribute data is different from the coordinate system of the geometric data, generating a reference frame for decoding the attribute data. When the coordinate system of the attribute data is the same as the coordinate system of the geometric data, the attribute data can be decoded based on the reference frame used for the geometric data. When the coordinate system of the attribute data is a Cartesian coordinate system, a first number of attribute data can be generated as reference frames based on an octree for the point cloud data. When the coordinate system of the attribute data is an angular coordinate system, a first number of attribute data can be generated as reference frames based on azimuth angles, and the first number of attribute data can be selected based on at least one of the sorting order or azimuth angle.
[0617] Regarding the generation of the integrated reference frame for geometry / attributes, generating the reference frame may include: when the coordinate systems of the geometry data and the attribute data are Cartesian coordinate systems, generating a first number of attribute data as reference frames based on an octree; and when the coordinate systems of the geometry data and the attribute data are angular coordinate systems, generating a first number of attribute data as reference frames based on an azimuth angle. The first number of attribute data may be selected based on at least one of the sorting order or the azimuth angle.
[0618] about The SPS, GPS, and APS bitstream may include at least one of a sequence parameter set, a geometric parameter set, an attribute parameter set, a tile parameter set, a geometric data header, or an attribute data header. The sequence parameter set may include information indicating whether an integrated reference frame buffer is used. The geometric parameter set may include at least one of the following: information indicating whether an integrated reference frame buffer is used, a quantization value associated with the azimuth angle used for the reference frame, information about the number of points associated with the interval used for the azimuth angle, information indicating the method of selecting points within the interval used for the azimuth angle, information about the number of reference points associated with the integrated reference frame, or a method of selecting reference points associated with the integrated reference frame. The attribute parameter set may include at least one of the following: information indicating whether an integrated reference frame buffer is used, information about the maximum number of points within the interval associated with the azimuth angle used for the reference frame, information about the octree depth level associated with the reference frame, a quantization value associated with the reference frame, or a method of selecting points within the interval associated with the azimuth angle.
[0619] about For TPS, the tile parameter set may include at least one of the following: information indicating whether an integrated reference frame buffer for the tile is used, quantization values related to the azimuth angle applied to the tile, information about the maximum number of points in the interval related to the azimuth angle applied to the tile, a method for selecting points in the interval related to the azimuth angle, information about the number of reference points related to the integrated reference frame applied to the tile, a method for selecting reference points in the integrated reference frame applied to the tile, information about the amount of attribute data in the interval related to the azimuth angle applied to the tile, information about the octree depth level applied to the tile, information about the azimuth quantization of the attribute data applied to the tile, or a method for selecting attribute data in the interval related to the azimuth angle applied to the tile.
[0620] about and For both GSH and ASH, the geometry data header may include at least one of the following: information indicating whether an integrated reference frame buffer for the slice is used, quantization values related to the azimuth angle applied to the slice, information about the maximum number of points in the interval related to the azimuth angle applied to the slice, a method for selecting points in the interval related to the azimuth angle, information about the number of reference points related to the integrated reference frame applied to the slice, or a method for selecting reference points in the integrated reference frame applied to the slice. The attribute data header may include at least one of the following: information indicating whether an integrated reference frame buffer for the slice is used, information about the maximum number of attribute data in the interval related to the azimuth angle applied to the slice, information about the octree depth level applied to the slice, quantization values of the attribute data applied to the slice, or a method for selecting attribute data in the interval.
[0621] Decoding methods can be derived from, for example The decoding apparatus shown performs this operation. The decoding apparatus may include a memory and at least one processor connected to the memory. The at least one processor may be configured to receive a bitstream including point cloud data and to decode the point cloud data.
[0622] The method / apparatus according to the embodiments provides the following effects.
[0623] When storing reference frames in a buffer for inter-frame prediction, if the geometry and attribute information use different coordinate systems, it may be necessary to store information in two different coordinate systems for a single reference frame. If only one of the two pieces of information is stored, additional coordinate transformations need to be performed in the decoder, which introduces computational overhead and increases complexity. Storing both pieces of information increases memory usage, potentially burdening the decoder. Applying bidirectional prediction may require even more computation and memory usage. Furthermore, global / local motion may be applied only to geometry or only to attributes. This can also increase the number of reference frames.
[0624] The implementation addresses the aforementioned technical problem through a reference frame buffer management method for applying predictive compression using reference frames to a point cloud captured by rotating LiDAR and having multiple frames.
[0625] Therefore, the embodiments provide a method for minimizing computational load and memory usage. Because the precision of the reference frame can be adjusted, noise can be removed even when the data contains a large amount of noise, thereby improving the compression efficiency of inter-frame prediction of point cloud data. Therefore, the transmission method / apparatus according to the embodiments can efficiently compress point cloud data, transmit data, and transmit its signaling information. The receiving method / apparatus according to the embodiments can also efficiently decode / reconstruct point cloud data.
[0626] The implementation methods have been described in accordance with the methods and / or apparatus, and the descriptions of the methods and apparatus may be applied to each other in a complementary manner.
[0627] For ease of description, each figure has been described individually. However, the embodiments described in the figures can be combined to achieve new embodiments. Furthermore, computer-readable recording media containing programs for performing the above embodiments, designed according to the needs of those skilled in the art, also fall within the scope of the embodiments. The apparatus and methods according to the embodiments are not limited to the configurations and methods of the above embodiments, and all or part of the embodiments can be selectively combined to make various modifications. Although preferred embodiments have been shown and described, the embodiments are not limited to the specific embodiments described above, and those skilled in the art can make various modifications without departing from the spirit of the embodiments claimed in the claims. These modifications should not be construed as departing from the technical spirit or scope of the embodiments.
[0628] In this disclosure, " / " and "," should be interpreted as indicating "and / or". For example, the expression "A / B" can mean "A and / or B". Furthermore, "A, B" can mean "A and / or B". Additionally, "A / B / C" can mean "at least one of A, B, and / or C". Also, "A / B / C" can mean "at least one of A, B, and / or C". Furthermore, in this specification, the term "or" should be interpreted as indicating "and / or". For example, the expression "A or B" can mean 1) only A, 2) only B, or 3) both A and B. In other words, the term "or" as used in this document should be interpreted as indicating "additionally or alternatively".
[0629] Terms such as "first" and "second" can be used to describe various elements of the embodiments. However, the various components according to the embodiments should not be limited by the terms used above. These terms are used only to distinguish one element from another. For example, a first user input signal may be referred to as a second user input signal. Similarly, a second user input signal may be referred to as a first user input signal. The use of these terms should not be interpreted beyond the scope of the various embodiments. Both the first user input signal and the second user input signal are user input signals, but they do not mean the same user input signal unless the context clearly specifies otherwise.
[0630] The terminology used to describe embodiments is for the purpose of describing particular embodiments and is not intended to limit the embodiments. As used in the description of embodiments and claims, the singular form includes the plural of the referred objects unless the context clearly specifies otherwise. The expression “and / or” is used to include all possible combinations of terms. Terms such as “comprising” or “having” are intended to indicate the presence of figures, quantities, steps, elements, and / or components and should be understood not to exclude the possibility of additional figures, quantities, steps, elements, and / or components. As used herein, conditional expressions such as “if” and “when” are not limited to optional cases and are intended to perform related operations or interpret related definitions based on specific conditions when those conditions are met.
[0631] The operations described in this specification according to embodiments can be performed by a transmitting / receiving device including a memory and / or a processor according to embodiments. The memory may store a program for processing / controlling operations according to embodiments, and the processor may control the various operations described in this specification. The processor may be referred to as a controller, etc. In embodiments, operations may be performed by firmware, software, and / or combinations thereof. Firmware, software, and / or combinations thereof may be stored in a processor or memory.
[0632] The operations according to the above embodiments can be performed by the transmitting and / or receiving devices according to the embodiments. The transmitting / receiving devices may include a transmitter / receiver configured to transmit and receive media data, a memory configured to store instructions (program code, algorithms, flowcharts and / or data) for the processes according to the embodiments, and a processor configured to control the operation of the transmitting / receiving devices.
[0633] 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 embodiments can be performed by the processor. Alternatively, the processor may be implemented as an encoder / decoder for the operations of the above embodiments.
[0634] Invention Model
[0635] As described above, the relevant details are presented in the best mode for implementing the method.
[0636] Industrial applicability
[0637] As described above, the implementation methods can be applied in whole or in part to point cloud data transmission / reception devices and systems.
[0638] Within the scope of the implementation method, technicians may change or modify the implementation method in various ways.
[0639] Implementation may include variations / modifications within the scope of the claims and their equivalents.
Claims
1. A decoding method, the decoding method comprising the following steps: Receive a bitstream including point cloud data; as well as The point cloud data is decoded.
2. The decoding method according to claim 1, wherein The point cloud data is represented based on at least one of radius, azimuth angle, or laser index. Decoding the point cloud data includes: Decoding the geometric data of the point cloud data based on inter-frame prediction; and The attribute data of the point cloud data is decoded based on inter-frame prediction, and Each of the processes of decoding the geometric data and decoding the attribute data further includes generating a reference frame.
3. The decoding method according to claim 2, wherein Generating the reference frame includes generating a reference frame for decoding the geometric data based on a prediction tree for the point cloud data. The reference points in the reference frame are ordered based on the azimuth angle. Specifically, based on the interval generated according to the quantization value in the reference frame, at least one reference point for the interval is stored in a buffer for the reference frame, and Wherein, based on the existence of multiple reference points in the interval, a first number of points among the multiple reference points are stored in the buffer based on at least one of the sorting order or azimuth range.
4. The decoding method according to claim 2, wherein, Generating the reference frame includes: generating a reference frame for decoding the attribute data based on the fact that the coordinate system used for the attribute data is different from the coordinate system used for the geometric data. Wherein, the coordinate system used for the attribute data is the same as the coordinate system used for the geometric data, and the attribute data is decoded based on the reference frame used for the geometric data. Wherein, the coordinate system used for the attribute data is a Cartesian coordinate system, and the reference frame is generated from a first number of attribute data based on an octree for the point cloud data. Wherein, the coordinate system used for the attribute data is an angular coordinate system, and the first number of attribute data are generated as the reference frame based on the azimuth angle, and The first number of attribute data is selected based on at least one of the sorting order or the azimuth angle.
5. The decoding method according to claim 2, in, Generating the reference frame includes: Based on a Cartesian coordinate system for both the geometric data and the attribute data, a first number of attribute data are generated as the reference frame using an octree; and Based on the coordinate system used for the geometric data and the coordinate system used for the attribute data being angular coordinate systems, the first number of attribute data are generated as the reference frame based on the azimuth angle, and The first number of attribute data is selected based on at least one of the sorting order or the azimuth angle.
6. The decoding method according to claim 1, in, The bitstream includes at least one of a sequence parameter set, a geometric parameter set, an attribute parameter set, a piecewise parameter set, a geometric data header, or an attribute data header. The sequence parameter set includes information indicating whether an integrated reference frame buffer is used. The geometric parameter set includes at least one of the following: information indicating whether the integrated reference frame buffer is used, a quantization value related to the azimuth angle used for the reference frame, information regarding the number of points related to the interval used for the azimuth angle, information indicating a method for selecting points in the interval used for the azimuth angle, information regarding the number of reference points related to the integrated reference frame, or a method for selecting reference points related to the integrated reference frame. The attribute parameter set includes at least one of the following: information indicating whether the integrated reference frame buffer is used, information about the maximum number of points in the interval related to the azimuth angle used for the reference frame, information about the depth level of the octree related to the reference frame, a quantization value related to the reference frame, or a method for selecting points in the interval related to the azimuth angle.
7. The decoding method according to claim 6, in, The tile parameter set includes at least one of the following: information indicating whether an integrated reference frame buffer for the tile is used, quantization values related to the azimuth angle applied to the tile, information regarding the maximum number of points in the interval related to the azimuth angle applied to the tile, a method for selecting points in the interval related to the azimuth angle, information regarding the number of reference points related to the integrated reference frame applied to the tile, a method for selecting reference points in the integrated reference frame applied to the tile, information regarding the amount of attribute data in the interval related to the azimuth angle applied to the tile, information regarding the octree depth level applied to the tile, information regarding the azimuth quantization of the attribute data applied to the tile, or a method for selecting attribute data in the interval related to the azimuth angle applied to the tile.
8. The decoding method according to claim 6, in, The geometric data header includes at least one of the following: information indicating whether an integrated reference frame buffer for the slice is used; a quantization value related to the azimuth angle applied to the slice; information regarding the maximum number of points in the interval related to the azimuth angle applied to the slice; a method for selecting points in the interval related to the azimuth angle; information regarding the number of reference points related to the integrated reference frame applied to the slice; or a method for selecting reference points in the integrated reference frame applied to the slice. The attribute data header includes at least one of the following: information indicating whether the integrated reference frame buffer for the slice is used, information about the maximum amount of attribute data in the interval related to the azimuth angle applied to the slice, information about the octree depth level applied to the slice, quantization values for the attribute data applied to the slice, or a method for selecting attribute data in the interval.
9. A decoding device, the decoding device comprising: Memory; as well as At least one processor, said at least one processor being connected to the memory, Wherein, the at least one processor is configured to: Receive a bitstream including point cloud data; and The point cloud data is decoded.
10. An encoding method, the encoding method comprising the following steps: Encode the point cloud data; as well as Send a bit stream including the point cloud data.
11. The encoding method according to claim 10, in, The point cloud data is represented based on at least one of radius, azimuth angle, or laser index. Encoding the point cloud data includes: The geometric data of the point cloud data is encoded based on inter-frame prediction; and The attribute data of the point cloud data is encoded based on inter-frame prediction, and Each of the processes of encoding the geometric data and encoding the attribute data further includes generating a reference frame.
12. The encoding method according to claim 11, in, Generating the reference frame includes generating a reference frame for decoding the geometric data based on a prediction tree for the point cloud data. The reference points in the reference frame are ordered based on the azimuth angle. Specifically, based on the interval generated according to the quantization value in the reference frame, at least one reference point for the interval is stored in a buffer for the reference frame, and Wherein, based on the existence of multiple reference points in the interval, a first number of points among the multiple reference points are stored in the buffer based on at least one of the sorting order or azimuth range.
13. The encoding method according to claim 11, in, Generating the reference frame includes: generating a reference frame for decoding the attribute data based on the fact that the coordinate system used for the attribute data is different from the coordinate system used for the geometric data. Wherein, the coordinate system used for the attribute data is the same as the coordinate system used for the geometric data, and the attribute data is decoded based on the reference frame used for the geometric data. Wherein, the coordinate system used for the attribute data is a Cartesian coordinate system, and the reference frame is generated from a first number of attribute data based on an octree for the point cloud data. Wherein, the coordinate system used for the attribute data is an angular coordinate system, and the first number of attribute data are generated as the reference frame based on the azimuth angle, and The first number of attribute data is selected based on at least one of the sorting order or the azimuth angle.
14. A computer-readable storage medium storing a bit stream generated by the method according to claim 10.
15. A method comprising the following steps: Obtain a bitstream of point cloud data, the bitstream being generated based on encoding the point cloud data; as well as Send data including the bit stream.