Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
By using point cloud compression coding technology, the latency and complexity issues in point cloud data processing are solved, enabling efficient point cloud services that support VR and autonomous driving applications.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-02-26
- Publication Date
- 2026-04-14
AI Technical Summary
Existing technologies struggle to efficiently process large amounts of point cloud data, resulting in high latency and encoding/decoding complexity, and are unable to effectively provide high-quality point cloud services.
Point cloud compression coding techniques, including geometry-based point cloud compression (G-PCC) and video-based point cloud compression (V-PCC), are employed to encode and decode point cloud data and optimize the processing by incorporating feedback information, thereby reducing unnecessary data transmission.
It achieves efficient processing of point cloud data, provides high-quality point cloud services, supports applications such as VR and autonomous driving, and reduces latency and encoding/decoding complexity.
Smart Images

Figure CN121866769A_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 a set 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 latency 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 full content disclosed herein.
[0006] Technical solution
[0007] In one aspect of this disclosure, a method for transmitting point cloud data may include: encoding the point cloud data; and transmitting a bit stream containing the point cloud data. In another aspect of this disclosure, a method for receiving point cloud data may include: receiving a bit stream containing the point cloud data; and decoding the point cloud data.
[0008] Beneficial effects
[0009] The apparatus and method according to the embodiments can efficiently process point cloud data.
[0010] The apparatus and method according to the embodiments can provide high-quality point cloud services.
[0011] The 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 in and constitute a part of this application. The drawings illustrate embodiments of the disclosure and, together with the description, serve to explain 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 are used throughout the drawings to denote the same or similar components.
[0013] Figure 1 An 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 implementation method; 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 probabilistic non-update mode according to the implementation method is shown; Figure 12 An example of a point cloud data transmission device according to an embodiment is shown; Figure 13 An example of a point cloud data receiving device according to an embodiment is shown; Figure 14 An example of a bitstream containing point cloud data according to an embodiment is shown; Figure 15 A set of sequence parameters according to an implementation method is illustrated; Figure 16 An example of a point cloud data transmission method according to an embodiment is illustrated; and Figure 17 An example of a point cloud data receiving method according to an implementation method is shown. 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 position, orientation, angle, and movement of the user's head. The receiving device 10004 according to the embodiment can calculate viewport information based on the head orientation information. Viewport information can be 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, the receiving device 10004 can extract viewport information based on the vertical or horizontal FOV supported by the device and the head orientation information. 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, and 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, feedback information can be ensured by the renderer 10007 or by a separate external component (or device, assembly, etc.). Figure 1 The dashed lines in the diagram represent the process of sending feedback information ensured by renderer 10007. The point cloud content providing system can process (encode / decode) point cloud data based on the feedback information. Therefore, point cloud video decoder 10006 can perform decoding operations based on the feedback information. Receiving device 10004 can send feedback information to transmitting device 10000. Transmitting device 10000 (or 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 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 method, the transmitting device 10000 can be called an encoder, transmitting device, transmitter, etc., and the receiving device 10004 can be called 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, a 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 be optionally 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]
[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 the implementation method 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 residual (which may be referred to as residual attribute, residual attribute value, or attribute prediction residual) obtained by subtracting the predicted attribute (attribute value) of the point from the attribute (attribute value) of each point. The quantization process is configured as shown in the table below.
[0101] Table. Attribute Prediction Residual Quantization Pseudocode
[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. Attribute Prediction Residual Inverse Quantization Pseudocode
[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 operation.
[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, This represents the average attribute value of the voxels at level l. 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 1 and Figure 6 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. Figures 1 to 6 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 (or information about the geometry obtained as a decoding result) from the decoded geometry bitstream. The occupancy codes are as follows: Figures 1 to 6 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] According to the embodiments, the geometry reconstructor 7003 can regenerate geometry based on surface and / or decoded geometry. See also... Figures 1 to 9 As described, direct encoding and triadic geometric encoding are selectively applied. Therefore, the geometry reconstructor 7003 directly imports and sums the positional information of points for which direct encoding has been applied. When triadic geometric encoding is applied, the geometry reconstructor 7003 can reconstruct the geometry by performing the reconstruction operations (e.g., triangle reconstruction, upsampling, and voxelization) of the geometry reconstructor 30005. Details and references Figure 6 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. Figure 6 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, Figure 7 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... Figure 7 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... Figure 7 The software program and / or instruction set for the operation and / or function of the elements of the point cloud decoder.
[0147] Figure 8 A transmitting device according to an embodiment is shown.
[0148] Figure 8The transmitting device shown is Figure 1 The transmitting device 10000 (or Figure 3 Example of a point cloud encoder. Figure 8 The transmitting device shown can perform the same operation as the reference. Figures 1 to 6 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...). Figure 2 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... Figures 1 to 9 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... Figure 3 The operation and / or quantization of the described quantizer 30001 are the same or similar. Details and references Figures 1 to 9 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... Figure 3 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 Figures 1 to 6 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... Figure 3 and Figure 4 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 Figures 1 to 6 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... Figure 3 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. Figures 1 to 6 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... Figure 7 The described intra / inter-frame coding is the same or similar. Details and references Figure 7 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. Figures 1 to 6 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... Figures 1 to 9 The description is the same. Furthermore, its execution is the same as the reference. Figure 3 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... Figure 3 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... Figure 3 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. Figures 1 to 9 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] The transmission processor 8012 according to an embodiment 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 Geom00 and one or more attribute bitstreams Attr00 and Attr10.
[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 transmit 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 Figure 1 and Figure 2 The descriptions are the same, so their descriptions are omitted.
[0165] Figure 9 An example of a receiving device according to an embodiment is shown.
[0166] Figure 9 The receiving device shown is Figure 1 The receiving device 10004 (or Figure 10 and Figure 11 An example of a point cloud decoder. Figure 9 The receiving device shown can perform the same operation as the reference. Figures 1 to 11 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... Figure 1The 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. Figures 1 to 10 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 Figure 8 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 Figures 1 to 10 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] Figure 10 An exemplary structure that can be combined with a point cloud data transmission / reception method / apparatus according to an embodiment is shown.
[0180] Figure 10 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 via cloud network 1000 to at least one of robot 1010, self-driving vehicle 1020, XR device 1030, smartphone 1040, home appliance 1050 and / or HMD 1070, and can assist at least a portion of the processing of connected devices 1010 to 1070.
[0183] HMD 1070 represents one of the implementation types of an XR device and / or PCC device according to an embodiment. An 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 apparatus 1010 to 1050 that apply the above-described technology will be described. Figure 10 The devices 1010 to 1050 shown are operable to be connected to / coupled to the point cloud data transmitting and receiving devices according to the above embodiments.
[0185] <PCC+XR>
[0186] The XR / PCC device 1030 may employ PCC technology and / or XR (AR+VR) technology, and may be implemented as an HMD, a head-up display (HUD) installed in a vehicle, a television, a mobile phone, a smartphone, a computer, a wearable device, a home appliance, a digital signage, a vehicle, a stationary robot, or a mobile robot.
[0187] The XR / PCC device 1030 can analyze 3D point cloud data or image data acquired through various sensors or from external devices and generate positional and attribute data about 3D points. Thus, the XR / PCC device 1030 can acquire information about the surrounding space or real-world 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 a smartphone 1040 by applying PCC technology.
[0190] The 1040 smartphone can decode and display point cloud content based on PCC technology.
[0191] <PCC+Self-driving+XR>
[0192] The self-driving vehicle 1020 can be realized as a mobile robot, vehicle, 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 based on user input signals input through a user interface device and provide it to the user. 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 point cloud data transmission method / apparatus according to the implementation method can be interpreted as referring to... Figure 1 Transmitting device 10000 Figure 1 Point cloud video encoder 10002 Figure 1 Transmitter 10003 Figure 2 Acquisition 20000 - Encoding 20001 - Transmission 20002 Figure 3 encoder, Figure 8 The transmitting device Figure 10 The device Figure 11 Encoding based on probabilistic non-update patterns, Figure 12 Transmitting device (encoder), Figure 14 and Figure 15 Bitstream / parameter generation, Figure 16 Terms related to sending methods, etc.
[0203] The point cloud data receiving method / apparatus according to the embodiments can be interpreted as referring to... Figure 1 Receiver 10004, receiver 10005, point cloud video decoder 10006 Figure 2 Transmission 20002 - Decoding 20003 - Rendering 20004 Figure 7 decoder Figure 9 The receiving device Figure 10 The device Figure 11 Decoding based on probabilistic non-update mode Figure 13 The receiving device (decoder) Figure 17 Terminology related to receiving methods, etc.
[0204] Furthermore, the point cloud data transmission / reception method / apparatus according to the embodiments can be simply referred to as a method / apparatus.
[0205] According to the implementation method, the geometric data, geometric information, location information, and geometry constituting point cloud data should be interpreted as having the same meaning. Similarly, the attribute data and attribute information constituting point cloud data are interpreted as having the same meaning.
[0206] The method / apparatus according to the implementation may include and execute a scheme for supporting whether to update the context probability (i.e., a method for selecting a probability update for encoding bypass cells).
[0207] This implementation aims to support whether to update the probabilities in encoded bypass cells during geometry-based point cloud compression (G-PCC) used to compress point cloud content.
[0208] The implementation involves entropy coding for geometry-based point cloud compression (G-PCC) and reconstruction of compressed 3D point cloud data. The encoder is interpreted as the same as the coding unit, and the decoder is interpreted as the same as the decoding unit.
[0209] 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 the value of color (RGB, YUV, etc.) and / or reflectance.
[0210] In G-PCC encoding operations, point clouds can be segmented into tiles based on regions, and each tile can be further segmented into slices for parallel processing. This operation can include compressing geometry based on each slice, as well as compressing attribute information based on reconstructed geometry (decoded geometry) configured with positional information altered by compression.
[0211] G-PCC decoding operations may include decoding geometry based on the received encoded slice-level geometry bitstream and attribute bitstream, and reconstructing attribute information based on the geometry obtained through decoding (see [link to G-PCC decoding operation]). Figure 1 Decode (etc.).
[0212] like Figures 1 to 10 The compression techniques based on occupancy trees, prediction trees, or triples can be used for the compression of geometric information.
[0213] In the current G-PCC, when bypass cells are encoded and decoded, the probabilities are stored and updated, and division and renormalization are performed for range adjustment.
[0214] To support structural changes that allow for encoding of bypass units without performing such changes, implementations support the option to update probabilities when encoding bypass units.
[0215] Modifications and combinations of implementation methods are possible. The terms used herein can be understood based on their intended meaning within the scope of their common use in the relevant art.
[0216] The probability of whether to update the encoding of bypass and context cells is performed by the geometric entropy encoder and attribute entropy encoder of the G-PCC encoder, and can be reconstructed by the geometric entropy decoding and attribute entropy decoding operations of the G-PCC decoder.
[0217] Figure 11 An example of a probabilistic non-update mode according to the implementation method is shown.
[0218] like Figure 11 As shown, the point cloud data transmission method / apparatus according to the embodiment ( Figure 1 Transmitting device 10000 Figure 1 Point cloud video encoder 10002 Figure 1 Transmitter 10003 Figure 2 Acquisition 20000 - Encoding 20001 - Transmission 20002 Figure 3 encoder, Figure 8 The transmitting device Figure 10 The device Figure 12 The transmitting device (encoder) and Figure 16 The geometric entropy encoder and attribute entropy encoder (of the transmission method) can entropy encode geometry and attributes based on at least one of a probabilistic update mode and / or a probabilistic non-update mode.
[0219] like Figure 11 As shown, according to the implementation method ( Figure 1 The receiving device 10004 Figure 1 Receiver 10005 Figure 1 Point cloud video decoder 10006 Figure 2 Transmission 20002 / Decoding 20003 / Rendering 20004 Figure 7 decoder Figure 9 The receiving device Figure 10 The device Figure 13 The receiving device (decoder) and Figure 17 The geometric entropy decoder and attribute entropy decoder of the point cloud data receiving method / apparatus can perform entropy decoding on geometry and attributes based on at least one of a probabilistic update mode and / or a probabilistic non-update mode.
[0220] The encoder and decoder according to the implementation can update the probabilities of arithmetic encoding and arithmetic decoding. A cell, as a binary symbol, can represent a bit, and each cell can be encoded and decoded. The probability is determined based on the encoded cell, and the current cell can be arithmetically encoded by updating the probability of the binary values used to encode cells preceding the current cell. Context-encoded cells and non-context-encoded cells can exist. Non-context-encoded cells can be bypass cells. The mode of encoding cells based on context can be called a context mode, and the mode of encoding cells based on non-context can be called a bypass mode.
[0221] The entropy decoder can perform bypass decoding on input cells. During bypass decoding, as in the encoding case, the entropy decoder can use a uniform probability distribution. Depending on the state of the bypass decoding engine, the entropy decoder can compare the code interval range (codIRange) with the code interval offset (codIOffset) to assign values to cells. For example, when the code interval offset is greater than or equal to the code interval range, the value 1 can be assigned to the cell. When the code interval offset is less than the code interval range, the value 0 can be assigned to the cell. In this case, to directly compare the code interval range with the code interval offset, the values of the code interval range or the code interval offset can be appropriately adjusted.
[0222] For entropy coding / decoding of video information, Context-Based Adaptive Binary Arithmetic Coding (CABAC) can be used. In CABAC, "context-based" means adaptively selecting a coding scheme with good coding / decoding efficiency based on the surrounding environment. In this respect, using different contexts means applying different probability models to perform coding through independent context updates.
[0223] An entropy encoder may include a binarization unit, a regular coding engine, and a bypass coding engine.
[0224] The values of syntax elements can be input into a binarization unit. The binarization unit converts the values of syntax elements into a cell string and outputs the cell string. Here, the cell string can refer to a binary sequence or binary code consisting of one or more cells. When the values of symbols and / or syntax elements are represented as a binary sequence or binary code through binarization, a cell can refer to the value (0 or 1) of each position that constitutes the binary sequence (or binary code).
[0225] A pre-binarization scheme or predefined binarization type can be applied to each grammatical element, and the binarization scheme can be determined based on the grammatical element. Binarization types that can be applied to grammatical elements can include, for example, unary binarization, truncated unary binarization, truncated Rice binarization, exponential Golomb binarization, and fixed-length binarization.
[0226] The binarized signal (cell string) can be input into either a regular coding engine or a bypass coding engine. The entropy encoder can determine whether to perform entropy coding through the regular coding engine or the bypass coding engine, and can switch the coding path. Both the regular coding engine and the bypass coding engine can perform arithmetic coding.
[0227] A conventional coding engine can assign context reflecting probability values to corresponding information cells and encode the information cells based on the assigned context. After encoding each information cell, the conventional coding engine can update the context and / or probability for that information cell.
[0228] Bypass coding engines can improve encoding speed by encoding input cells in a simple bypass mode without allocating context based on the input cells. In bypass mode, the processes for estimating probabilities for the input cells and for updating the probabilities applied to the cells after encoding can be bypassed. For example, in bypass mode, the encoding process can be performed by applying a uniform probability distribution.
[0229] When it is determined that bypass decoding should be applied, the entropy decoder can perform bypass decoding on the input cells. During bypass decoding, as in the encoding case, the entropy decoder can use a uniform probability distribution. Depending on the state of the bypass decoding engine, the entropy decoder can compare the code interval range (codIRange) with the code interval offset (codIOffset) to assign a value to the cell. For example, when the code interval offset is greater than or equal to the code interval range, the value 1 can be assigned to the cell. When the code interval offset is less than the code interval range, the value 0 can be assigned to the cell. In this case, to directly compare the code interval range with the code interval offset, the values of the code interval range or the code interval offset can be adjusted appropriately.
[0230] Regarding the probability update mode, the method / apparatus according to the implementation can update the probability of bypass cell coding. When the range value for the interval is divided by 2, the value is changed to a value within the supported range. Then, a process of multiplying by 2 again can be performed for renormalization.
[0231] Regarding the probabilistic non-update mode, the probability encoded for the bypass cell can be left unupdated. In the entropy encoder, Low can be the left boundary of the interval, Range can be the length of the interval, and Counter can be the value incremented after each renormalization. When encoding bypass cells tightly, the value of Low can be doubled, Range can remain unchanged, and Counter can be incremented by 1. When the encoded cell is 1, Low can be increased by adding the value of Range. This operation omits the division and renormalization operations for Range and eliminates the need for a probability update process.
[0232] In the entropy decoder, `Code_minus_Low` can be the value obtained by subtracting the left boundary of the interval from the current code, `Range` can be the length of the interval, and `Counter` can be the value that decreases after each renormalization. When decoding bypass cells, the value of `Code_minus_Low` can be doubled, `Range` can remain unchanged, and `Counter` can be decreased by 1. When the value of `Code_minus_Low` is greater than or equal to `Range`, it can be decoded as the value 1, and the value of `Range` can be subtracted from `Code_minus_Low`. When `Code_minus_Low` is less than `Range`, it can be decoded as the value 0.
[0233] To support both modes, the bypass_bin_prob_update_disabled flag can be signaled. The geometry / attribute entropy decoder can then update or not update the probabilities based on the recovery value of bypass_bin_prob_update_disabled.
[0234] In the encoder's probabilistic non-update mode, the counter is incremented by 1 and the value of Low is doubled. Then, it is determined whether the cell is 1. When the cell is 1, "Low" is updated by adding the "Range" value to the "Low" value. When the cell is not 1, carry propagation control and byte writing to the bitstream remain unchanged. In this case, Range splitting and renormalization are skipped, and probabilistic storage and updates are not required.
[0235] In the decoder's probabilistic non-update mode, the counter is decremented by 1, and Code_minus_Low is doubled. When Code_minus_Low is greater than or equal to Range, the value of Range is subtracted from Code_minus_Low, and it is decoded as 1. When Code_minus_Low is less than Range, it is decoded as 0.
[0236] Figure 12An example of a point cloud data transmission device according to an embodiment is shown.
[0237] Figure 12 The device corresponds to the point cloud data transmission device according to the embodiment ( Figure 1 Transmitting device 10000 Figure 1 Point cloud video encoder 10002 Figure 1 Transmitter 10003 Figure 2 Acquisition 20000 - Encoding 20001 - Transmission 20002 Figure 3 encoder, Figure 8 The transmitting device Figure 10 The device Figure 12 The transmitting device (encoder) and Figure 16 (the transmission method), and can entropy encoding of geometry and attributes based on at least one of probabilistic update mode and / or probabilistic non-update mode.
[0238] Figure 12 Each component can correspond to hardware, software, processor, and / or a combination thereof.
[0239] The data input unit can receive geometry, attributes, and parameters related to geometry and attributes.
[0240] Coordinate transformers can transform a coordinate system representing geometry into a coordinate system used for geometric encoding.
[0241] The geometric information transformation / quantization processor can quantize geometry based on quantization parameters.
[0242] The spatial divider can divide the voxelized geometry.
[0243] A geometric information encoder can generate a geometric information bit stream based on occupancy bits generated by an occupancy tree generator (or octagonal tree generator) according to the geometric coding type, residual values relative to predictions from a prediction tree, or vertex values for a triplet plane approximation by a geometric information entropy encoder.
[0244] The geometric position reconstructor can reconstruct geometric information and pass it to the attribute information encoder.
[0245] When performing arithmetic coding, the geometric entropy encoder receives a system setting value indicating whether to update the bypass cell coding probability. It can support both performing probability updates and skipping probability updates. The geometric entropy encoder can generate bypass_bin_coding_prob_update_disabled information and include this information in the bitstream.
[0246] The attribute information encoder can generate an attribute information bitstream based on the residual value relative to the predicted value obtained by the prediction / boosting transformer and the RAHT transformer, or based on the DC / AC value of the RAHT according to the attribute encoding type, through the attribute information entropy encoder.
[0247] When performing arithmetic coding, the attribute information entropy encoder receives a value indicating whether to update the bypass cell coding probability as a system setting. It can support both performing probability updates and skipping probability updates. The attribute information entropy encoder can generate bypass_bin_coding_prob_update_disabled information and include it in the bitstream.
[0248] Figure 1 An example of a point cloud data receiving device according to an embodiment is shown.
[0249] The device corresponds to the point cloud data receiving device according to the embodiment ( Receiver 10004, receiver 10005, point cloud video decoder 10006 Transmission 20002 - Decoding 20003 - Rendering 20004 decoder The receiving device The device The receiving device (decoder) and (The receiving method), and can perform entropy decoding on geometry and attributes based on at least one of probabilistic update mode and / or probabilistic non-update mode.
[0250] Each component can correspond to hardware, software, processor, and / or a combination thereof. The receiving device can perform with The reverse processing of the transmitting device.
[0251] The geometry information decoder can receive the geometry information bitstream included in the bitstream.
[0252] When performing arithmetic coding by parsing and recovering information indicating whether arithmetic coding is performed from the bitstream, the geometric information entropy decoder can receive and recover information indicating whether the probability for bypass cell coding is updated, and can recover the bitstream by performing or skipping probability updates based on the recovered information.
[0253] Similar to the encoder, the geometric information decoder can reconstruct an occupancy tree (or octree) or prediction tree based on the recovered geometric coding type.
[0254] The geometry information predictor generates predicted values for the current geometry based on the occupancy tree or prediction tree and reconstructs the geometry from the received residual values.
[0255] The geometric position reconstructor reconstructs the geometric information and passes the position information to the attribute information decoder.
[0256] The geometric information transformation / inverse quantization processor can inverse quantize geometric information quantized by the encoder.
[0257] The inverse coordinate transformer can perform an inverse transformation on the coordinate system transformed by the encoder.
[0258] The attribute information entropy decoder receives information from the bitstream indicating whether arithmetic coding has been performed and reconstructs it. When arithmetic coding is performed, the decoder can receive and recover information indicating whether the probability of bypass cell coding has been updated, and then reconstruct the bitstream by performing or skipping probability updates based on the recovered information.
[0259] After arithmetic decoding, the attribute information decoder can generate predicted values based on the attribute encoding type through the prediction / boosting reconstructor and the RAHT reconstructor, recover the attributes based on the received residual values, and decode the attribute information based on the DC / AC value of RAHT.
[0260] A bitstream containing point cloud data according to an embodiment is illustrated.
[0261] like As shown, the point cloud data transmission method / apparatus according to the embodiment ( Transmitting device 10000 Point cloud video encoder 10002 Transmitter 10003 Acquisition 20000 - Encoding 20001 - Transmission 20002 encoder, The transmitting device The device The transmitting device (encoder) and The sending method generates and sends a bit stream containing encoded point cloud data and parameters.
[0262] like As shown, the point cloud data receiving method / apparatus according to the embodiment ( Receiver 10004, receiver 10005, point cloud video decoder 10006 Transmission 20002 - Decoding 20003 - Rendering 20004 decoder The receiving device The device The receiving device (decoder) and (The receiving method) receives the bit stream and decodes the point cloud based on parameters.
[0263] Signaling can be executed to add / execute the encoding / decoding method according to the above embodiments. In the following, parameters according to the embodiments (which may be referred to as metadata, signaling information, etc.) can be generated during the process of the transmitter according to the embodiments described below, and can be sent to the receiver according to the embodiments for use during the reconstruction process. For example, parameters according to the embodiments can be generated by the metadata processor (or metadata generator) of the transmitting device according to the embodiments described below, and obtained by the metadata parser of the receiving device according to the embodiments.
[0264] Each of the following abbreviations refers to: SPS: Sequence Parameter Set; GPS: Geometric Parameter Set; APS: Attribute Parameter Set; TPS: Patch Parameter Set; Geom: Geometric Bit Stream = Geometric Data Unit (Geometric Data Unit Header + Geometric Data + Geometric Data + Geometric Data Unit Footer); ATTR: Attribute Bit Stream = Attribute Data Unit (Attribute Data Unit Header + Attribute Data + Attribute Data Unit Footer).
[0265] Providing tiles or slices allows point clouds to be divided into regions for processing. When the point cloud is divided into multiple regions, each region has a different importance level. Depending on the importance, different filters or filter units can be applied, allowing for the use of more complex but higher-quality filtering methods in important regions. Instead of applying complex filtering methods to the entire point cloud, different filtering methods can be applied to different regions (regions divided into tiles or slices) based on the receiver's processing capabilities, ensuring better quality and sufficient latency in the system for regions important to the user. Therefore, when the point cloud is divided into tiles, different filters or filter units can be applied to the corresponding tiles. When the point cloud is divided into slices, different filters or filter units can be applied to the corresponding slices.
[0266] Reference A bitstream is a target unit with parameters applied and may include SPS, GPS, one or more APS, TPS, and one or more slices. TPS may include information about the origin and size (width, depth, and height) of the tile bounding box for one or more tiles. A slice is a unit of encoding / decoding and may include geometry and one or more attributes. Geometry can consist of a geometry slice header and geometry slice data. A slice can also be referred to as a data unit. The geometry slice header or geometry data unit header carries information such as parameter set ID, tile ID, slice ID, the source and size of the geometry box, and the number of points for the geometry. The geometry slice data or geometry data unit carries the encoded geometry.
[0267] The probability update information used for bypass cell coding can be added to the SPS in the bitstream.
[0268] An example of a sequence parameter set according to an implementation method is shown.
[0269] Bypass_stream_enable: When equal to 1, it indicates that a bypass coding mode can be used during the reading of the bitstream. When equal to 0, it indicates that a bypass coding mode is not used during the reading of the bitstream.
[0270] sps_extension_present: When equal to 0, it indicates that the syntax element sps_extension_data exists in the SPS syntax structure. sps_extension_present is equal to 0 in a bitstream conforming to this specification version.
[0271] sps_extension_data can have any value.
[0272] Bypass_bin_coding_prob_update_disabled: When equal to 1, it indicates that the probability updates used for encoding bypass cells are disabled. When equal to 0, it indicates that the probability updates used for encoding bypass cells are enabled. Bypass_bin_coding_prob_update_disabled is applied when Bypass_stream_enabled is equal to 0.
[0273] An example of a point cloud data transmission method according to an implementation method is provided.
[0274] S1600: The point cloud data transmission method according to the embodiment may include encoding the point cloud data.
[0275] The encoding operation according to the implementation method may include Transmitting device 10000, point cloud video encoder 10002, transmitter 10003, Acquisition 20000 - Encoding 20001 - Transmission 20002 encoder, The transmitting device The device Encoding based on probabilistic update and non-update modes, The transmitting device (encoder) and and The operation of generating bitstreams / parameters.
[0276] S1601: The point cloud data transmission method according to the embodiment may further include transmitting a bit stream containing point cloud data.
[0277] The sending operation according to the implementation includes, according to Transmitting device 10000, point cloud video encoder 10002, transmitter 10003, Acquisition 20000 - Encoding 20001 - Transmission 20002 encoder, The transmitting device The device Encoding based on probabilistic update and non-update modes, The transmitting device (encoder) and and The bitstream / parameter generation operation is used to send a bitstream containing encoded point cloud data and encoded related parameters.
[0278] An example of a point cloud data receiving method according to an implementation method is shown.
[0279] S1700: The point cloud data receiving method according to the embodiment may include receiving a bit stream containing point cloud data.
[0280] The receiving operation according to the implementation method may include: according to Receiver 10004, receiver 10005, point cloud video decoder 10006 Transmission 20002 - Decoding 20003 - Rendering 20004 decoder The receiving device The operation of the device, based on Decoding of probabilistic update and non-update modes The receiving device (decoder) and and 15 The generation of bitstreams is used to receive bitstreams.
[0281] S1701: The point cloud data receiving method according to the embodiment may further include decoding the point cloud data.
[0282] The decoding operation according to the implementation method may include, according to Receiver 10004, Receiver 10005, Point Cloud Video Decoder 10006 Transmission 20002 - Decoding 20003 - Rendering 20004 decoder The receiving device The operation of the device, based on Decoding of probabilistic update and non-update modes The receiving device (decoder) and and The bitstream is processed to decode the point cloud.
[0283] The receiving method can follow The reverse process of the sending method.
[0284] Reference The point cloud data transmission method according to the embodiments may include encoding the point cloud data and transmitting a bit stream containing the point cloud data.
[0285] Reference Regarding encoding methods, the steps for encoding point cloud data can include encoding the geometry of the point cloud data and encoding the attributes of the point cloud data. The steps for encoding the geometry of the point cloud data can include generating an occupancy tree or prediction tree for the geometry, generating predicted values for the geometry based on the occupancy tree or prediction tree, generating residual values for the geometry based on the predicted values, and performing arithmetic encoding on the residual values. The steps for encoding the attributes of the point cloud data can include generating the level of detail (LoD) of the attribute, generating predicted values for the attribute based on the LoD, generating residual values for the attribute based on the predicted values, and performing arithmetic encoding on the residual values.
[0286] Reference Regarding the probability update mode of arithmetic coding, the steps of arithmetic coding the residual value may include: encoding the residual value based on the non-context and generating a bypass cell, and updating the probability for the bypass cell to encode the bypass cell, wherein the step of updating the probability may include dividing the range by 2 (the range corresponds to the length of the interval used for arithmetic coding), and performing renormalization.
[0287] Reference Regarding the probabilistic non-update mode of arithmetic coding, the steps of arithmetic coding the residual value may include encoding the residual value based on non-context and generating a bypass cell, encoding the bypass cell, and the encoding steps include multiplying the value of a boundary of the interval used for arithmetic coding by 2 and maintaining the value of a range corresponding to the length of the interval, and adding the value of the range to the value of a boundary of the interval based on the encoded bypass cell being equal to 1.
[0288] Reference and Regarding the sequence parameter set (SPS), a bitstream may contain a sequence parameter set, which may contain information indicating whether a bypass coding mode is used in arithmetic coding and information indicating whether a probability update mode for encoding bypass cells is used in arithmetic coding.
[0289] The point cloud data transmission method can be executed by the transmitting device. (Refer to...) The transmitting device may include: an encoder configured to encode point cloud data; and a transmitter configured to transmit a bit stream containing point cloud data.
[0290] An encoder configured to encode point cloud data can be configured to perform operations including encoding the geometry of the point cloud data and encoding the attributes of the point cloud data. The steps for encoding the geometry of the point cloud data may include generating an occupancy tree or prediction tree for the geometry, generating predicted values for the geometry based on the occupancy tree or prediction tree, generating residual values for the geometry based on the predicted values, and arithmetic encoding the residual values. The steps for encoding the attributes of the point cloud data may include generating a level of detail (LoD) for the attribute, generating predicted values for the attribute based on the LoD, generating residual values for the attribute based on the predicted values, and arithmetic encoding the residual values.
[0291] Reference The point cloud data receiving method may include receiving a bit stream containing point cloud data and decoding the point cloud data.
[0292] Reference Decoding point cloud data can include decoding the geometry of the point cloud data and decoding the attributes of the point cloud data. Decoding the geometry of the point cloud data can include performing arithmetic decoding on the geometry, and decoding the attributes of the point cloud data can include performing arithmetic decoding on the attributes.
[0293] Reference Regarding the probabilistic non-update mode of geometric arithmetic coding, the steps for arithmetic decoding of the geometry may include decoding bypass cells based on non-contextuality. Decoding bypass cells may include multiplying a first value (Code_minus_Low) by 2, which is obtained by subtracting a boundary value of the interval used for arithmetic decoding from the code for the geometry, maintaining a range value corresponding to the length of the interval, decoding the bypass cell as 1 based on the first value being greater than or equal to a value within that range, and decoding the bypass cell as 0 based on the first value being less than a value within that range.
[0294] Reference Regarding the probabilistic non-update mode of attribute arithmetic coding, the steps for arithmetic decoding of attributes may include decoding bypass cells based on non-contextuality. Decoding bypass cells may include multiplying a first value (Code_minus_Low) by 2, which is obtained by subtracting a boundary value of the interval used for arithmetic decoding from the code for the attribute, maintaining a range value corresponding to the length of the interval, decoding the bypass cell as 1 based on the first value being greater than or equal to a value within that range, and decoding the bypass cell as 0 based on the first value being less than a value within that range.
[0295] Point cloud data reception methods can be executed using a receiving device. (Refer to...) The receiving device may include: a receiver configured to receive a bit stream containing point cloud data; and a decoder configured to decode the point cloud data.
[0296] A decoder configured to decode point cloud data can be configured to perform operations including decoding the geometry of the point cloud data and decoding the attributes of the point cloud data. Decoding the geometry of the point cloud data can include arithmetic decoding of the geometry, and decoding the attributes of the point cloud data can include arithmetic decoding of the attributes.
[0297] The PCC encoding method, PCC decoding method, and signaling method according to the above embodiments can provide the following effects.
[0298] In scenarios where LiDAR devices capture and store frames one by one, angular patterns can be applied. However, when multiple frames are captured by a LiDAR device and integrated into a single content fragment to generate 3D map data, data captured from different central locations of the LiDAR device are mixed. As a result, angular characteristics that may appear in the data captured by the LiDAR device (i.e., when transformed into angular coordinates (r, ...)) can be hidden. (i) The regularity between time points). Therefore, applying the angle model may be less efficient than compression based on the Cartesian coordinate system.
[0299] Therefore, in order to increase compression efficiency by using features captured by LiDAR devices, a method may be needed to improve the compression efficiency of 3D map data based on the regularity of points in the content.
[0300] The implementation supports origin selection, classification, and fast prediction tree construction methods for efficient geometric compression based on prediction trees to support 3D map data captured by LiDAR devices and integrated into a single piece of content.
[0301] Therefore, implementations can provide point cloud content streaming by improving the geometric compression efficiency of encoders / decoders for geometry-based point cloud compression (G-PCC) for 3D point cloud data compression.
[0302] The PCC encoder and / or PCC decoder according to the implementation method can provide an efficient prediction tree generation method and can improve the efficiency of geometric compression encoding / decoding while taking into account the degree of influence between prediction points.
[0303] Therefore, the transmitting method / apparatus according to the embodiments can efficiently compress point cloud data and transmit the compressed data, and also transmit signaling information for the data. Therefore, the receiving method / apparatus according to the embodiments can also efficiently decode / reconstruct the point cloud data.
[0304] Implementations have been described in accordance with the methods and / or apparatus, and the descriptions of the methods and apparatus may be applied complementaryly to each other.
[0305] Although the accompanying drawings have been described separately for simplicity, new embodiments can be designed by combining the embodiments illustrated in the various drawings. A computer-readable recording medium is designed on which a program for executing the above embodiments is recorded as needed by those skilled in the art, and this recording medium also falls within the scope of the appended claims and their equivalents. The apparatus and methods according to the embodiments are not limited to the configurations and methods of the above embodiments. Various modifications can be made to the embodiments by selectively combining all or some of the embodiments. Although preferred embodiments have been described with reference to the accompanying drawings, those skilled in the art will understand that various modifications and variations can be made to the embodiments without departing from the spirit or scope of this disclosure as described in the appended claims. Such modifications should not be interpreted in isolation from the technical concept or viewpoint of the embodiments.
[0306] Various elements of the apparatus according to the embodiments can be implemented by hardware, software, firmware, or a combination thereof. Various elements in the embodiments can be implemented by a single chip (e.g., a single hardware circuit). According to the embodiments, the components according to the embodiments can be implemented as separate chips. According to the embodiments, at least one or more components of the apparatus according to the embodiments can include one or more processors capable of executing one or more programs. One or more programs can perform any one or more operations / methods according to the embodiments or include instructions for performing them. Executable instructions for performing the methods / operations of the apparatus according to the embodiments can be stored in a non-transitory CRM or other computer program product configured to be executed by one or more processors, or can be stored in a transient CRM or other computer program product configured to be executed by one or more processors. Additionally, the memory according to the embodiments can be used to encompass not only volatile memory (e.g., RAM) but also the concepts of non-volatile memory, flash memory, and PROM. Furthermore, it can also be implemented in the form of a carrier wave (e.g., transmission via the Internet). Additionally, the processor-readable recording medium can be distributed to computer systems connected via a network, such that processor-readable code can be stored and executed in a distributed manner.
[0307] In this disclosure, the terms “ / ” 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, and / or 3) both A and B. In other words, the term “or” in this document should be interpreted as indicating “additionally or alternatively”.
[0308] Terms such as "first" and "second" can be used to describe various elements of the embodiments. However, the various components according to the embodiments should not be limited by the above terms. These terms are used only to distinguish one element from another. For example, a first user input signal can be referred to as a second user input signal. Similarly, a second user input signal can be referred to as a first user input signal. The use of these terms should be interpreted without departing from 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.
[0309] The terminology used to describe embodiments is for the purpose of describing particular embodiments only 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 be interpreted as performing a related operation or interpreting a related definition based on a specific condition when that condition is met. Embodiments may include variations / modifications within the scope of the claims and their equivalents.
[0310] Operations according to the embodiments described in this specification can be performed by a transmitting / receiving device including a memory and / or processor according to the embodiments. The memory may store programs for processing / controlling the operations according to the embodiments, and the processor may control the various operations described in this specification. The processor may be referred to as a controller, etc. In the embodiments, operations can be performed by firmware, software, and / or combinations thereof. Firmware, software, and / or combinations thereof may be stored in a processor or memory.
[0311] The operation 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 processing according to the embodiments; and a processor configured to control the operation of the transmitting / receiving devices.
[0312] 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. Furthermore, the processor may be implemented as an encoder / decoder for the operations of the above embodiments.
[0313] Open mode
[0314] As described above, the relevant details have been described in the best manner for carrying out the implementation.
[0315] Industrial applicability
[0316] As described above, these implementations are applicable in whole or in part to point cloud data transmission / reception devices and systems.
[0317] Those skilled in the art can change or modify the implementation method in various ways within the scope of the implementation method.
[0318] Implementation may include variations / modifications within the scope of the claims and their equivalents.
Claims
1. A method for transmitting point cloud data, the method comprising the following steps: Encoding point cloud data; and Send a bit stream containing the point cloud data.
2. The method according to claim 1, wherein, The steps for encoding the point cloud data include: Encode the geometry of the point cloud data; and The attributes of the point cloud data are encoded. The step of encoding the geometry of the point cloud data includes: Generate an occupancy tree or prediction tree for the geometry; The predicted value of the geometry is generated based on the occupancy tree or the prediction tree; Generate residual values for the geometry based on the predicted values; and The residual values are arithmetically encoded. The step of encoding the attributes of the point cloud data includes: Generate a level-of-detail LoD for the attribute; Based on the LoD, a predicted value for the attribute is generated; Generate residual values for the attribute based on the predicted values; and The residual value is arithmetically encoded.
3. The method according to claim 2, wherein, The steps of arithmetic encoding the residual values include: Encode the residual value based on non-contextual information and generate bypass cells; and The probability of the bypass cell is updated to encode the bypass cell. The step of updating the probability includes: Divide the range by 2, the range corresponding to the length of the interval for the arithmetic code; and Perform renormalization.
4. The method according to claim 2, wherein, The steps of arithmetic encoding the residual values include: The residual value is encoded based on the non-context and a bypass information element is generated; The bypass cells are encoded, and the encoding steps include: Multiply the value of a boundary of the interval for the arithmetic code by 2; and Maintain a value within a range corresponding to the length of the interval; and Based on the fact that the encoded bypass cell is equal to 1, the value of the range is added to the value of the boundary of the interval.
5. The method according to claim 1, wherein, The bitstream contains a set of sequence parameters. The sequence parameter set includes: Information indicating whether a bypass coding mode is used in arithmetic coding; and Information indicating whether a probability update pattern for encoding bypass cells is used in the arithmetic coding.
6. An apparatus for transmitting point cloud data, the apparatus comprising: An encoder, configured to encode point cloud data; as well as A transmitter configured to transmit a bit stream containing the point cloud data.
7. The apparatus according to claim 1, wherein, The encoder, configured to encode the point cloud data, is configured to perform operations including: Encode the geometry of the point cloud data; and The attributes of the point cloud data are encoded. The operation of encoding the geometry of the point cloud data includes: Generate an occupancy tree or prediction tree for the geometry; The predicted value of the geometry is generated based on the occupancy tree or the prediction tree; Generate residual values for the geometry based on the predicted values; and The residual values are arithmetically encoded. The operation of encoding the attributes of the point cloud data includes: Generate a level-of-detail LoD for the attribute; Based on the LoD, a predicted value for the attribute is generated; Generate residual values for the attribute based on the predicted values; and The residual value is arithmetically encoded.
8. A method for receiving point cloud data, the method comprising the following steps: Receive a bitstream containing point cloud data; as well as The point cloud data is decoded.
9. The method according to claim 8, wherein, The steps for decoding the point cloud data include: Decode the geometry of the point cloud data; and Decode the attributes of the point cloud data. The step of decoding the geometry of the point cloud data includes: Arithmetic decoding is performed on the geometry, and The step of decoding the attributes of the point cloud data includes: Perform arithmetic decoding on the attribute.
10. The method according to claim 9, wherein, The steps for performing arithmetic decoding on the geometry include: Decoding bypass cells based on non-contextual information The steps for decoding the bypass cells include: Multiply the first value by 2, which is obtained by subtracting the value of a boundary of the interval for the arithmetic decoding from the code for the geometry; Maintain the value within a range corresponding to the length of the interval; Based on the first value being greater than or equal to the range, the bypass cell is decoded as 1; and Based on the first value being less than the range, the bypass cell is decoded as 0.
11. The method according to claim 9, wherein, The steps for performing arithmetic decoding on the attribute include: Decoding bypass cells based on non-contextual information The steps for decoding the bypass cells include: Multiply the first value by 2, which is obtained by subtracting a boundary value for the interval of the arithmetic decoding from the code for the attribute; Maintain the value within a range corresponding to the length of the interval; Based on the first value being greater than or equal to the range, the bypass cell is decoded as 1; and Based on the first value being less than the range, the bypass cell is decoded as 0.
12. The method according to claim 8, wherein, The bitstream contains a set of sequence parameters. The sequence parameter set includes: Information indicating whether a bypass coding mode is used in arithmetic coding; and Information indicating whether a probability update pattern for encoding bypass cells is used in the arithmetic coding.
13. An apparatus for receiving point cloud data, the apparatus comprising: A receiver configured to receive a bitstream containing point cloud data; as well as A decoder configured to decode the point cloud data.
14. The apparatus according to claim 13, wherein, The decoder, configured to decode the point cloud data, is configured to perform operations including: Decode the geometry of the point cloud data; and Decode the attributes of the point cloud data. The operation of decoding the geometry of the point cloud data includes: Arithmetic decoding of the geometry is performed. The operation of decoding the attributes of the point cloud data includes: Perform arithmetic decoding on the attribute.