Point cloud attribute encoding method, point cloud attribute decoding method, point cloud attribute encoding device, point cloud attribute decoding device and electronic equipment
By determining the target context model based on the transformation coefficient and distribution characteristic value of the point cloud, and encoding the point cloud attribute information, the problem of low run length encoding efficiency in the prior art is solved, and more efficient point cloud attribute information encoding is achieved.
Patent Information
- Application Number
- CN202311313292.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-10
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2043-10-10
AI Technical Summary
When the prior art run coding point cloud attribute information, it adopts a unified context model or probability model, resulting in low coding efficiency of run length, which in turn affects the coding efficiency of point cloud attribute information.
When determining at the encoding end that the transformation coefficient of the node to be encoded is not the first value, the target context model is determined based on the transformation coefficient and distribution characteristic value of the first node, the run length to be encoded, and the transformation coefficient is encoded to generate an attribute code stream.
The efficiency of run length encoding is improved, thereby improving the encoding efficiency of point cloud attribute information.
Smart Images

Figure CN119815053A_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the field of communication technology, and specifically relates to a point cloud attribute encoding method, a point cloud attribute decoding method, a device and an electronic device. Background Art
[0002] Point cloud refers to a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or three-dimensional scene. Point cloud data usually consists of geometric information describing the location, such as three-dimensional coordinates (x, y, z) and attribute information of the location, such as color (R, G, B) or reflectivity. In the point cloud coding and compression process, the encoding of geometric information and attribute information is usually performed separately, wherein the encoding process of attribute information includes entropy encoding of the transformation coefficients obtained by transforming the attribute information, and run-length coding is a commonly used encoding method for entropy encoding the transformation coefficients. At present, in the process of run-length coding of the attribute information of the point cloud, a unified context model or probability model is used to entropy encode the run length to be encoded, which easily leads to low coding efficiency of the run length, and thus leads to low coding efficiency of the attribute information of the point cloud. Summary of the invention
[0003] The embodiments of the present application provide a point cloud attribute encoding method, a point cloud attribute decoding method, a device and an electronic device, which can improve the run-length encoding efficiency, and further improve the encoding efficiency of the attribute information of the point cloud.
[0004] In a first aspect, a point cloud attribute encoding method is provided, the method comprising:
[0005] The encoder determines, when determining that the transformation coefficient of the node to be encoded is not the first value, a first target context model according to the transformation coefficient of the first node and the first distribution characteristic value;
[0006] The encoder uses the first target context model to encode the run length to be encoded, and encodes the transformation coefficient of the node to be encoded to obtain an attribute code stream;
[0007] Among them, the attribute code stream includes the encoding result of the run length and the encoding result of the transformation coefficient, the first node includes the parent node of the second node or the child node of the grandparent node of the second node, the second node includes at least one of the node to be encoded and the third node, the third node and the node to be encoded are located at the same layer of the first transformation tree, the third node is located before the node to be encoded and the transformation coefficient of the third node is not the first value, the first transformation tree is a transformation tree constructed based on the geometric reconstruction information of the point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded.
[0008] In a second aspect, a point cloud attribute encoding device is provided, the device comprising:
[0009] A first determination module, configured to determine a first target context model according to the transformation coefficient of the first node and a first distribution characteristic value when it is determined that the transformation coefficient of the node to be encoded is not the first value;
[0010] An encoding module, configured to encode the run length to be encoded by adopting the first target context model, and encode the transform coefficient of the node to be encoded to obtain an attribute code stream;
[0011] Among them, the attribute code stream includes the encoding result of the run length and the encoding result of the transformation coefficient, the first node includes the parent node of the second node or the child node of the grandparent node of the second node, the second node includes at least one of the node to be encoded and the third node, the third node and the node to be encoded are located at the same layer of the first transformation tree, the third node is located before the node to be encoded and the transformation coefficient of the third node is not the first value, the first transformation tree is a transformation tree constructed based on the geometric reconstruction information of the point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded.
[0012] In a third aspect, a point cloud attribute decoding method is provided, the method comprising:
[0013] The decoding end obtains an attribute code stream of the point cloud, wherein the attribute code stream includes an encoding result of a transformation coefficient and an encoding result of a run length of the point cloud;
[0014] The decoding end determines a second target context model according to the transformation coefficient of the fourth node and the second distribution characteristic value when the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value;
[0015] The decoding end decodes the run length to be decoded in the encoding result of the run length based on the second target context model;
[0016] Among them, the fourth node includes the parent node of the fifth node or the child node of the grandparent node of the fifth node, the fifth node includes at least one of the node to be decoded and the sixth node, the sixth node and the node to be decoded are located at the same layer of the second transform tree, the sixth node is located before the node to be decoded and the transform coefficient of the sixth node is not the first value, the second transform tree is a transform tree constructed based on the geometric reconstruction information of the point cloud, and the second distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be decoded.
[0017] In a fourth aspect, a point cloud attribute encoding device is provided, the device comprising:
[0018] An acquisition module, used for acquiring an attribute code stream of a point cloud, wherein the attribute code stream includes an encoding result of a transformation coefficient and an encoding result of a run length of the point cloud;
[0019] A second determination module is used to determine a second target context model according to the transformation coefficient of the fourth node and the second distribution characteristic value when the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value;
[0020] A decoding module, configured to decode the run length to be decoded in the encoding result of the run length based on the second target context model;
[0021] Among them, the fourth node includes the parent node of the fifth node or the child node of the grandparent node of the fifth node, the fifth node includes at least one of the node to be decoded and the sixth node, the sixth node and the node to be decoded are located at the same layer of the second transform tree, the sixth node is located before the node to be decoded and the transform coefficient of the sixth node is not the first value, the second transform tree is a transform tree constructed based on the geometric reconstruction information of the point cloud, and the second distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be decoded.
[0022] In a fifth aspect, an electronic device is provided, comprising a processor and a memory, wherein the memory stores a program or instruction that can be run on the processor, and when the program or instruction is executed by the processor, the steps of the method described in the first aspect are implemented, or the steps of the method described in the third aspect are implemented.
[0023] In a sixth aspect, an electronic device is provided, comprising a processor and a communication interface, wherein the processor is used to determine a first target context model according to the transform coefficient of the first node and a first distribution characteristic value when determining that the transform coefficient of the node to be encoded is not a first value; the first target context model is used to encode the run length to be encoded, and the transform coefficient of the node to be encoded is encoded to obtain an attribute code stream; wherein the attribute code stream includes the encoding result of the run length and the encoding result of the transform coefficient, the first node includes the parent node of the second node or the child node of the grandparent node of the second node, the second node includes at least one of the node to be encoded and a third node, the third node and the node to be encoded are located at the same layer of a first transform tree, the third node is located before the node to be encoded and the transform coefficient of the third node is not the first value, the first transform tree is a transform tree constructed based on the geometric reconstruction information of the point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded;
[0024] or,
[0025] The communication interface is used to obtain an attribute code stream of a point cloud, wherein the attribute code stream includes an encoding result of a transformation coefficient and an encoding result of a run length of the point cloud; the processor is used to determine a second target context model based on the transformation coefficient of a fourth node and a second distribution characteristic value when the transformation coefficient of a node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not a first value; and decode the run length to be decoded in the encoding result of the run length based on the second target context model; wherein the fourth node includes a parent node of a fifth node or a child node of a grandparent node of the fifth node, the fifth node includes at least one of the node to be decoded and a sixth node, the sixth node and the node to be decoded are located at the same layer of a second transformation tree, the sixth node is located before the node to be decoded and the transformation coefficient of the sixth node is not the first value, the second transformation tree is a transformation tree constructed based on geometric reconstruction information of the point cloud, and the second distribution characteristic value is a distribution characteristic value determined according to attribute information of a node set corresponding to the node to be decoded.
[0026] In a seventh aspect, an electronic device is provided, comprising: a memory configured to store point cloud data, and a processing circuit configured to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the third aspect.
[0027] In an eighth aspect, a readable storage medium is provided, on which a program or instruction is stored. When the program or instruction is executed by a processor, the steps of the method described in the first aspect are implemented, or the steps of the method described in the third aspect are implemented.
[0028] In a ninth aspect, a coding and decoding system is provided, comprising: a coding end device and a decoding end device, wherein the coding end device can be used to execute the steps of the method described in the first aspect, and the decoding end device can be used to execute the steps of the method described in the third aspect.
[0029] In the tenth aspect, a chip is provided, comprising a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run a program or instructions to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the third aspect.
[0030] In the eleventh aspect, a computer program / program product is provided, wherein the computer program / program product is stored in a storage medium, and the program / program product is executed by at least one processor to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the third aspect.
[0031] In an embodiment of the present application, when determining that the transformation coefficient of the node to be encoded is not the first value, the encoding end determines a first target context model according to the transformation coefficient of the first node and the first distribution characteristic value; the encoding end uses the first target context model to encode the run length to be encoded, and encodes the transformation coefficient of the node to be encoded to obtain an attribute code stream; wherein the attribute code stream includes the encoding result of the run length and the encoding result of the transformation coefficient, the first node includes the parent node of the second node or the child node of the grandparent node of the second node, and the second node includes at least one of the node to be encoded and the third node. One item, the third node and the node to be encoded are located at the same layer of the first transformation tree, the third node is located before the node to be encoded and the transformation coefficient of the third node is not the first value, the first transformation tree is a transformation tree constructed based on the geometric reconstruction information of the point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded, that is, the embodiment of the present application can select the corresponding context model to encode the run length to be encoded based on the distribution characteristics of the transformation coefficient of the point cloud, which is conducive to improving the run length coding efficiency, and further improve the coding efficiency of the attribute information of the point cloud. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] Figure 1 is a schematic diagram of a coding and decoding system provided in an embodiment of the present application;
[0033] Figure 2a is a coding flow chart performed by an encoder based on an AVS-PCC coding framework provided in an embodiment of the present application;
[0034] Figure 2bis a coding flow chart performed by an encoder based on an MPEG G-PCC coding framework provided in an embodiment of the present application;
[0035] Figure 3a is a decoding flow chart of a decoder based on an AVS-PCC decoding framework provided in an embodiment of the present application;
[0036] Figure 3b is a decoding flow chart performed by a decoder based on a decoding framework of MPEG G-PCC provided in an embodiment of the present application;
[0037] Figure 4a is a coding flow chart performed by another encoder based on the MPEG G-PCC coding framework provided in an embodiment of the present application;
[0038] Figure 4b is a decoding flow chart of another decoding framework based on MPEG G-PCC provided in an embodiment of the present application;
[0039] Figure 5 It is a flow chart of entropy encoding of point cloud attributes based on run-length encoding provided by an embodiment of the present application;
[0040] Figure 6 is a flow chart of a point cloud attribute encoding method provided in an embodiment of the present application;
[0041] Figure 7a It is one of the schematic diagrams of a transformation tree provided in an embodiment of the present application;
[0042] Figure 7b This is a second schematic diagram of a transformation tree provided in an embodiment of the present application;
[0043] Figure 8 is a flow chart of a point cloud attribute decoding method provided in an embodiment of the present application;
[0044] Fig. 9 is a structural diagram of a point cloud attribute encoding device provided in an embodiment of the present application;
[0045] Fig.10 is a structural diagram of a point cloud attribute decoding device provided in an embodiment of the present application;
[0046] Fig.11 is a structural diagram of an electronic device provided in an embodiment of the present application;
[0047] Fig.12 It is a structural diagram of a terminal provided in an embodiment of the present application. DETAILED DESCRIPTION
[0048] The following will be combined with the drawings in the embodiments of the present application to clearly describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field belong to the scope of protection of this application.
[0049] The terms "first", "second", etc. of the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the terms used in this way are interchangeable where appropriate, so that the embodiments of the present application can be implemented in an order other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of one type, and the number of objects is not limited, for example, the first object can be one or more. In addition, "or" in the present application represents at least one of the connected objects. For example, "A or B" covers three schemes, namely, Scheme 1: including A but not including B; Scheme 2: including B but not including A; Scheme 3: including both A and B. The character " / " generally indicates that the objects associated with each other are in an "or" relationship.
[0050] The term "indication" in this application can be a direct indication (or explicit indication) or an indirect indication (or implicit indication). A direct indication can be understood as the sender explicitly informing the receiver of specific information, operations to be performed, or request results in the sent indication; an indirect indication can be understood as the receiver determining the corresponding information according to the indication sent by the sender, or making a judgment and determining the operation to be performed or the request result according to the judgment result.
[0051] Before introducing the technical solutions provided by the embodiments of the present application, the meanings of some of the terms are first introduced.
[0052] Point Cloud: Point cloud refers to a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a 3D object or 3D scene. Point clouds can be divided into different categories according to different classification standards. For example, according to the acquisition method of point clouds, they can be divided into dense point clouds and sparse point clouds; for example, according to the time series type of point clouds, they can be divided into static point clouds and dynamic point clouds.
[0053] Point Cloud Data: The geometric coordinate information and attribute information of each point in the point cloud together constitute the point cloud data. The geometric coordinate information can also be called three-dimensional position information. The geometric coordinate information of a point in the point cloud refers to the spatial coordinates (x, y, z) of the point, which can include the coordinate values of the point in each coordinate axis direction of the three-dimensional coordinate system, for example, the coordinate value x in the X-axis direction, the coordinate value y in the Y-axis direction, and the coordinate value z in the Z-axis direction. The attribute information of a point in the point cloud may include at least one of the following: color information, material information, laser reflection intensity information (also called reflectivity). Usually, each point in the point cloud has the same amount of attribute information. For example, each point in the point cloud can have two kinds of attribute information: color information and laser reflection intensity. For another example, each point in the point cloud can have three kinds of attribute information: color information, material information, and laser reflection intensity information.
[0054] Point Cloud Compression (PCC): Point cloud coding refers to the process of encoding the geometric coordinate information and attribute information of each point in the point cloud to obtain a compressed code stream. Point cloud coding can include two main processes: geometric coordinate information encoding and attribute information encoding. At present, the point cloud coding framework that can compress point clouds can be the geometry-based point cloud compression (G-PCC) codec framework or the video-based point cloud compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS).
[0055] Point cloud decoding: Point cloud decoding refers to the process of decoding the compressed bitstream obtained by point cloud encoding to reconstruct the point cloud. In detail, it refers to the process of reconstructing the geometric coordinate information and attribute information of each point in the point cloud based on the geometric bitstream and attribute bitstream in the compressed bitstream. After obtaining the compressed bitstream at the decoding end, the geometric bitstream is first entropy decoded to obtain the quantized information of each point in the point cloud, and then inverse quantization is performed to reconstruct the geometric coordinate information of each point in the point cloud. As for the attribute bitstream, entropy decoding is first performed to obtain the quantized attribute residual information or quantized transform coefficients of each point in the point cloud; then the quantized attribute residual information is inversely quantized to obtain the reconstructed residual information, and the quantized transform coefficients are inversely quantized to obtain the reconstructed transform coefficients. The reconstructed transform coefficients are inversely transformed to obtain the reconstructed residual information. According to the reconstructed residual information of each point in the point cloud, the attribute information of each point in the point cloud can be reconstructed. The reconstructed attribute information of each point in the point cloud is matched one by one with the reconstructed geometric coordinate information in order to reconstruct the point cloud.
[0056] Figure 1 Schematic diagram of the coding and decoding system provided in the embodiment of the present application. The technical solution of the embodiment of the present application involves coding and decoding (CODEC) (including encoding or decoding) of point cloud data.
[0057] like Figure 1 As shown, the codec system 10 includes a source device 100, which provides encoded point cloud data that is decoded and displayed by a destination device 110. Specifically, the source device 100 provides the point cloud data to the destination device 110 via a communication medium 120. The source device 100 and the destination device 110 may include any one or more of a desktop computer, a notebook (i.e., laptop) computer, a tablet computer, a set-top box, a mobile phone, a wearable device (e.g., a smart watch or a wearable camera), a television, a camera, a display device, a vehicle-mounted device, a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (MR) device, a digital media player, a video game console, a video conferencing device, a video streaming device, a broadcast receiver device, a broadcast transmitter device, a spacecraft, an aircraft, a robot, a satellite, and the like.
[0058] exist Figure 1 In the example of , the source device 100 includes a data source 101, a memory 102, an encoder 200, and an output interface 104. The destination device 110 includes an input interface 111, a decoder 300, a memory 113, and a display device 114. The source device 100 represents an example of an encoding device, and the destination device 110 represents an example of a decoding device. In other examples, the source device 100 and the destination device 110 may not include Figure 1Some components in, or can also include Figure 1 For example, the source device 100 may acquire point cloud data through an external capture device. Similarly, the destination device 110 may be connected to an external display device interface without including an integrated display device. For another example, the memory 102 and the memory 113 may be external memories.
[0059] Although Figure 1 The source device 100 and the destination device 110 are shown as separate devices, but in some examples, the two may also be integrated into one device. In such embodiments, the functions corresponding to the source device 100 and the functions corresponding to the destination device 110 may be implemented using the same hardware or software, or using separate hardware or software, or any combination thereof.
[0060] In some examples, the source device 100 and the destination device 110 can perform unidirectional data transmission or bidirectional data transmission. If it is bidirectional data transmission, the source device 100 and the destination device 110 can operate in a substantially symmetrical manner, that is, each of the source device 100 and the destination device 110 includes an encoder and a decoder.
[0061] The data source 101 represents the source of point cloud data (i.e., the original, unencoded point cloud data) and provides the encoder 200 with the point cloud data, and the encoder 103 encodes the point cloud data. The source device 100 may include a capture device (e.g., a camera device, a sensor device, or a scanning device), an archive of previously captured point cloud data, or a feed interface for receiving point cloud data from a data content provider. Among them, the camera device may include an ordinary camera, a stereo camera, and a light field camera, etc., the sensor device may include a laser device, a radar device, etc., and the scanning device may include a three-dimensional laser scanning device, etc. The point cloud data can be obtained by collecting the visual scene of the real world through the capture device. As an alternative, the data source 101 may generate computer graphics-based data as source data, or combine real-time data, archived data, and computer-generated data. For example, the data source generates point cloud data based on a virtual object (e.g., a virtual three-dimensional object and a virtual three-dimensional scene obtained by three-dimensional modeling).
[0062] The encoder 200 encodes the captured, pre-captured, or computer-generated data. The encoder 200 may rearrange the point cloud data from the order in which it was received (sometimes referred to as the "display order") into an encoding order. The encoder 200 may generate a bitstream including the encoded point cloud data. The source device 100 may then output the encoded point cloud data to the communication medium 120 via the output interface 104 for receipt or retrieval by, for example, the input interface 111 of the destination device 110.
[0063] The memory 102 of the source device 100 and the memory 113 of the destination device 110 represent general memory. In some examples, the memory 102 can store the original data from the data source 101, and the memory 113 can store the decoded point cloud data from the decoder 300. Additionally or alternatively, the memories 102 and 113 can store software instructions that can be executed by, for example, the encoder 200 and the decoder 300, respectively. Although the memory 102 and the memory 113 are shown separately from the encoder 200 and the decoder 300 in this example, it should be understood that the encoder 200 and the decoder 300 can also include internal memory for functionally similar or equivalent purposes. If the encoder 200 and the decoder 300 are deployed on the same hardware device, the memory 102 and the memory 113 can be the same memory. In addition, the memories 102 and 113 can store, for example, the encoded point cloud data output from the encoder 200 and input to the decoder 300. In some examples, portions of memory 102 , 113 may be allocated as one or more point cloud buffers, such as for storing raw, decoded, or encoded point cloud data.
[0064] In some examples, source device 100 may output the encoded data from output interface 104 to memory 113. Similarly, destination device 110 may access the encoded data from memory 113 via input interface 111. Memory 113 or storage 102 may include any of a variety of distributed or locally accessed data storage media, such as a hard drive, a Blu-ray disc, a digital versatile disc (DVD), a compact disc read-only memory (CD-ROM), flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded point cloud data.
[0065] The output interface 104 may include any type of medium or device capable of transmitting the encoded point cloud data from the source device 100 to the destination device 110. For example, the output interface 104 may include a transmitter or transceiver, such as an antenna, configured to transmit the encoded point cloud data directly from the source device 100 to the destination device 110 in real time. The encoded point cloud data may be modulated according to a communication standard of a wireless communication protocol and transmitted to the destination device 110.
[0066] The communication medium 120 may include a transient medium, such as a wireless broadcast or a wired network transmission. For example, the communication medium 120 may include a radio frequency (RF) spectrum or one or more physical transmission lines (e.g., cables). The communication medium 120 may form part of a packet-based network (such as a local area network, a wide area network, or a global network such as the Internet). The communication medium 120 may also take the form of a storage medium (e.g., a non-transitory storage medium) such as a hard disk, a flash drive, a compact disk, a digital point cloud disk, a Blu-ray disc, a volatile or non-volatile memory, or any other suitable digital storage medium for storing the encoded point cloud data.
[0067] In some embodiments, the communication medium 120 may include a router, a switch, a base station, or any other device that can be used to facilitate communication from the source device 100 to the destination device 110. For example, a server (not shown) can receive the encoded point cloud data from the source device 100 and provide it to the destination device 110, for example, via a network transmission. The server may include a web server (for example, for a website), a server configured to provide a file transfer protocol service (such as a file transfer protocol (FTP) or a unidirectional file transfer (File Delivery Over Unidirectional Transport, FLUTE) protocol), a content delivery network (CDN) device, a Hypertext Transfer Protocol (HTTP) server, a Multimedia Broadcast Multicast Services (MBMS) or an evolved Multimedia Broadcast Multicast Service (eMBMS) server, or a network-attached storage (NAS) device, etc. The server can implement one or more HTTP streaming protocols, such as MPEG Media Transport (MMT) protocol, Dynamic Adaptive Streaming over HTTP (DASH) protocol, HTTP Live Streaming (HLS) protocol or Real Time Streaming Protocol (RTSP) protocol.
[0068] The destination device 110 can access the encoded point cloud data from the server, for example via a wireless channel (e.g., a Wi-Fi connection) or a wired connection (e.g., a digital subscriber line (DSL), a cable modem, etc.) for accessing the encoded point cloud data stored on the server.
[0069] Output interface 104 and input interface 111 may represent a wireless transmitter / receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to the IEEE 802.11 standard or the IEEE 802.15 standard (e.g., ZigBee™), the Bluetooth standard, etc., or other physical components. In examples where output interface 104 and input interface 111 include wireless components, output interface 104 and input interface 111 may be configured to transfer data, such as encoded point cloud data, according to WIFI, Ethernet, a cellular network (such as 4G, LTE (Long Term Evolution), Advanced LTE, 5G, 6G, etc.).
[0070] The technology provided in the embodiments of the present application can be applied to support one or more application scenarios such as the following: machine perception of point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, emergency rescue robots, etc.; human eye perception of point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive communication, and three-dimensional immersive interaction.
[0071] The input interface 111 of the destination device 110 receives an encoded bitstream from the communication medium 120. The encoded bitstream may include high-level syntax elements and encoded data units (e.g., sequences, groups of pictures, pictures, slices, blocks, etc.), wherein the high-level syntax elements are used to decode the encoded data units to obtain decoded point cloud data. The display device 114 displays the decoded point cloud data to the user. The display device 114 may include a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or other types of display devices. In some examples, the destination device 110 may not have a display device 114. For example, if the decoded point cloud data is used to determine the position of a physical object, the display device 114 may be replaced by a processor.
[0072] The encoder 200 and the decoder 300 may be implemented as one or more of various processing circuits, which may include a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), discrete logic, hardware, or any combination thereof. When the technology is implemented in whole or in part in software, the device may store instructions for the software in an appropriate non-transitory computer-readable storage medium, and use one or more processors to execute the instructions in hardware to perform the technology provided in the embodiments of the present application.
[0073] The following introduces the basic principles of the encoder 200 and decoder 300 provided in the embodiment of the present application by taking the G-PCC and AVS-PCC encoding and decoding frameworks as examples.
[0074] The encoding and decoding frameworks of G-PCC and AVS-PCC are roughly the same. Figure 2a The encoding flow chart of the encoder based on the AVS-PCC encoding framework is shown as follows: Figure 2b The following is a flow chart showing the encoding performed by an encoder based on the encoding framework of MPEG G-PCC. The encoder may be Figure 1 The encoder 200 shown. The above encoding framework can be roughly divided into a geometric coordinate information encoding process and an attribute information encoding process. In the geometric information encoding process, the geometric coordinate information of each point in the point cloud is encoded to obtain a geometric bit stream; in the attribute information encoding process, the attribute information of each point in the point cloud is encoded to obtain an attribute bit stream; the geometric bit stream and the attribute bit stream together constitute a compressed code stream of the point cloud.
[0075] For the geometric information encoding process, the encoding process performed by the encoder 200 is as follows:
[0076] 1. Pre-Processing: This may include coordinate transformation and voxelization. Pre-processing converts point cloud data in three-dimensional space into integer form through scaling and translation operations, and moves its minimum geometric position to the origin of the coordinates. In some examples, the encoder 200 may not perform pre-processing.
[0077] 2. Geometric coding: For the AVS-PCC coding framework, geometric coding includes two modes, namely, octree-based geometric coding and prediction tree-based geometric coding. For the G-PCC coding framework, geometric coding includes three modes, namely, octree-based geometric coding, trisoup-based geometric coding, and prediction tree-based prediction coding. Among them:
[0078] Octree-based geometric coding: Octree is a tree data structure that evenly divides the pre-set bounding box in three-dimensional space, and each node has eight child nodes. By using "1" and "0" to indicate whether each child node of the octree is occupied or not, the occupancy code information (Occupancy Code) is obtained as the code stream of the point cloud geometry information.
[0079] Geometric coding based on prediction tree: A prediction tree is generated using a prediction strategy, each node is traversed starting from the root node of the prediction tree, and the residual coordinate values corresponding to each traversed node are encoded.
[0080] Geometric coding based on triangle representation: Divide the point cloud into blocks of a certain size and locate the intersection points (called vertices) of the point cloud surface at the edge of the block. Compress the geometric information by encoding whether there are intersection points on each edge of the block and the location of the intersection points.
[0081] 3. Geometry Entropy Encoding: Statistical compression encoding is performed on the occupancy code information of the octree, the prediction residual information of the prediction tree, and the vertex information of the triangle representation, and finally a binary (0 or 1) compressed code stream is output. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal. The commonly used statistical coding method is context-based binary arithmetic coding (Content Adaptive Binary Arithmetic Coding, CABAC).
[0082] 4. Geometry reconstruction: Decode and reconstruct the geometric information after geometry encoding.
[0083] For the attribute information encoding process, the encoding process performed by the encoder 200 is as follows:
[0084] 1. Color transformation: Apply a transformation to transform the color information of an attribute to a different domain. For example, the color information can be transformed from the RGB color space to the YCbCr color space.
[0085] 2. Attribute recoloring: In the case of lossy encoding, after the geometric coordinate information is encoded, the encoder needs to decode and reconstruct the geometric information, that is, restore the geometric information of each point in the point cloud. Find the attribute information corresponding to one or more neighboring points in the original point cloud as the attribute information of the reconstructed point.
[0086] In some examples, encoder 200 may not perform color conversion or attribute recoloring.
[0087] 3. Attribute information processing: In AVS-PCC, attribute information processing can include three modes, namely prediction coding, transform coding and prediction & transform coding. These three coding modes can be used under different conditions.
[0088] Among them, predictive coding refers to determining the neighboring points of the point to be coded as the prediction points among the coded points based on information such as distance or spatial relationship, and calculating the predicted attribute information of the point to be coded based on the attribute information of the prediction points based on the set criteria. The difference between the real attribute information and the predicted attribute information of the point to be coded is calculated as the attribute residual information, and the attribute residual information is quantized, transformed (optional) and entropy coded.
[0089] Transform coding refers to the use of transformation methods such as Discrete Cosine Transform (DCT) and Haar Transform (Haar) to group and transform attribute information and quantize transform coefficients; obtain attribute reconstruction information through inverse quantization and inverse transformation; calculate the difference between the real attribute information and the attribute reconstruction information to obtain attribute residual information and quantize it; and entropy code the quantized transform coefficients and attribute residuals.
[0090] Predictive transform coding refers to using the attribute residual information obtained by prediction to transform, quantize and entropy code the transform coefficients.
[0091] In MPEG G-PCC, attribute information processing may include three modes, namely, prediction transform (PredictionTransform) coding, lifting transform (Lifting Transform) coding, and region adaptive hierarchical transform (RegionAdaptive Hierarchical Transform, RAHT) coding, and these three coding modes can be used under different conditions.
[0092] Among them, predictive transform coding refers to selecting sub-point sets according to distance, dividing the point cloud into multiple different levels (Level of Detail, LoD), and realizing multi-quality hierarchical point cloud representation from coarse to fine. Bottom-up prediction can be realized between adjacent layers, that is, the attribute information of the points introduced in the fine layer is predicted by the neighboring points in the coarse layer to obtain the corresponding attribute residual information. Among them, the points in the lowest layer are encoded as reference information.
[0093] Lifting transform coding refers to introducing a weight update strategy for neighborhood points based on the prediction of adjacent layers of LoD, and ultimately obtaining the predicted attribute information of each point and the corresponding attribute residual information.
[0094] Region adaptive hierarchical transform coding means that the attribute information is transformed into the transform domain through RAHT transform, which is called transform coefficient.
[0095] 4. Attribute Quantization: The degree of quantization is usually determined by the quantization parameter. The transform coefficients or attribute residual information obtained by attribute information processing are quantized, and the quantized results are entropy coded. For example, in predictive transform coding and lifting transform coding, the quantized attribute residual information is entropy coded; in RAHT, the quantized transform coefficients are entropy coded.
[0096] 5. Entropy Coding: The quantized attribute residual information and / or transform coefficients are generally compressed using run length coding and arithmetic coding. The corresponding coding mode, quantization parameters and other information are also encoded using an entropy encoder. The above run length coding can also be called run length coding or zero run length coding.
[0097] The encoder 200 encodes the geometric coordinate information of each point in the point cloud to obtain a geometric bitstream, and encodes the attribute information of each point in the point cloud to obtain an attribute bitstream. The encoder 200 can transmit the encoded geometric bitstream and attribute bitstream together to the decoder 300.
[0098] Figure 3a A decoding flowchart of a decoder based on the AVS-PCC decoding framework is shown, Figure 3b A decoding flow chart of a decoder based on the decoding framework of MPEG G-PCC is shown, and the above decoder may be Figure 1Decoder 300 is shown. After receiving the compressed code stream (i.e., attribute bit stream and geometry bit stream) transmitted by encoder 200, decoder 300 decodes the geometry bit stream to reconstruct the geometric coordinate information of each point in the point cloud, and decodes the attribute bit stream to reconstruct the attribute information of each point in the point cloud.
[0099] The decoding process performed by the decoder 300 is as follows:
[0100] 1. Entropy Decoding: Entropy decoding is performed on the geometry bit stream and the attribute bit stream respectively to obtain geometry syntax elements and attribute syntax elements.
[0101] 2. Geometric decoding: For the AVS-PCC coding framework, geometric decoding includes two modes, namely, octree-based geometric decoding and prediction tree-based geometric decoding. For the G-PCC coding framework, geometric coding includes three modes, namely, octree-based geometric decoding, trisoup-based geometric decoding, and prediction tree-based prediction decoding.
[0102] Octree-based geometry decoding: The octree is reconstructed based on the geometry syntax elements parsed from the geometry bitstream.
[0103] Prediction tree-based geometry decoding: The prediction tree is reconstructed based on the geometry syntax elements parsed from the geometry bitstream.
[0104] Geometry decoding based on triangle representation: Reconstruct the triangle model based on the geometry syntax elements parsed from the geometry bitstream.
[0105] 3. Geometric reconstruction: Perform reconstruction to obtain the geometric coordinate information of the points in the point cloud.
[0106] 4. Coordinate inverse transformation: The reconstructed geometric coordinate information is inversely transformed to convert the reconstructed coordinates (positions) of the points in the point cloud from the transformed domain back to the initial domain.
[0107] 5. Dequantization: Dequantize the attribute syntax elements.
[0108] 6. Attribute information processing: In AVS-PCC, attribute information processing determines the color information of the midpoint in the point cloud by predicting or predicting the prediction residual or prediction residual transformation coefficient after inverse quantization, or by transforming the inverse quantized transformation coefficient to determine the color information of the midpoint in the point cloud.
[0109] In MPEG G-PCC, attribute information processing determines the color information of the point in the point cloud by RAHT for the inverse quantized attribute information, or determines the color information of the point in the point cloud by LOD and inverse lifting for the inverse quantized attribute information.
[0110] 7. Color inversion: Convert color information from the YCbCr color space to the RGB color space. In some examples, the color inversion operation may not be performed.
[0111] Figure 3a A decoding flowchart of a decoder based on the AVS-PCC decoding framework is shown, Figure 3b A flowchart showing the decoding performed by a decoder based on the decoding framework of MPEG G-PCC
[0112] For ease of understanding, some contents involved in the embodiments of the present application are described below:
[0113] 1. G-PCC encoder
[0114] In the G-PCC coding framework, the geometric information and attribute information of the point cloud are encoded separately. Figure 4a As shown in , the current G-PCC-based point cloud attribute coding can be divided into regional adaptive hierarchical transformation based on upsampling prediction and lifting transformation based on hierarchical structure division. Accordingly, the decoding process of the G-PCC-based decoding framework can be as follows: Figure 4b shown.
[0115] Among them, the above-mentioned regional adaptive hierarchical transformation based on upsampling prediction includes: first, constructing a transformation tree structure. Starting from the bottom layer, an octree structure is constructed from bottom to top. In the process of constructing the transformation tree, it is necessary to generate corresponding Morton code information, attribute information and weight information for the merged nodes. Then, upsampling prediction and RAHT are performed layer by layer from the root node from top to bottom. If the current node is a root node, no upsampling prediction is performed, and the attribute information of the node is directly RAHT transformed, and then the DC coefficient and AC coefficient obtained by the transformation are quantized and entropy encoded. If it is not a root node, it is determined whether to predict the current node based on the number of grandparent nodes and parent nodes of the current node. For example, the current node is predicted when the number of neighbor nodes of the grandparent node of the current node is greater than the first threshold and the number of neighbor nodes of the parent node of the current node is greater than the second threshold, otherwise the current node is not predicted. If prediction is required, for the current node to be coded, select the parent node of the current child node to be coded, the neighboring parent node coplanar and colinear with the current child node to be coded, and the neighboring child node coplanar and colinear with the current child node to be coded for its child nodes to perform weighted prediction to obtain the predicted attribute value of the current child node to be coded, and then perform RAHT transformation on the predicted attribute value and the original attribute value of the current node to be coded, calculate the residual of the alternating current (AC) coefficient, and quantize and entropy encode the residual of the AC coefficient. If prediction is not required, directly perform RAHT transformation on the original attribute value of the current node to be coded, quantize and entropy encode the obtained AC coefficient, and finally obtain the attribute code stream
[0116] The lifting transformation based on hierarchical structure division includes: first, the point cloud to be encoded is divided into levels of detail (LoD) to establish a hierarchical structure of the point cloud. In this process, the bottom-level points are first encoded and decoded, so the bottom-level points and the reconstructed points of the same level can be used to predict the high-level points, thereby realizing progressive encoding and decoding. Then, the bottom-level and the points of the same level are used as reference points, the points to be encoded are searched within the reference points, the nearest K reference points are selected as the prediction reference points, and the reconstructed attribute values of these K nearest neighbors are used for linear interpolation prediction, and the weight is the inverse of the Euclidean distance between the nearest neighbor point and the point to be encoded. Finally, the lifting transformation is performed, which includes three parts: segmentation, prediction, and update. The segmentation stage performs spatial segmentation on the input point cloud data, dividing it into two parts: a high-level point cloud and a low-level point cloud. In the prediction stage, the attribute information of the low-level point cloud is used to predict the attribute information of the high-level point cloud to obtain the prediction residual. In the process of segmentation and prediction, since the prediction strategy in LoD partitioning makes the points in the lower LoD layer have higher weights, it is necessary to define and recursively update the influence weight of each point based on the prediction residual and the distance between the predicted point and its neighbors, and finally obtain the code stream of attribute information.
[0117] 2. RAHT Attribute Entropy Coding
[0118] Currently, G-PCC attribute information entropy coding adopts run-length coding. Taking color information as an example, Figure 5 As shown in the figure, when the transformation coefficients of all nodes of the input point cloud are traversed, all the transformation coefficients are traversed. First, determine whether the YUV or RGB components are all 0. If they are all 0, the run length (length) value is increased by 1; if they are not all 0, continue to determine the next set of transformation coefficients; if they are not all 0, first entropy encode the current length value, set the length value to 0, and then entropy encode the value of the current YUV transformation coefficient respectively. The above run length encoding can also be called zero run length encoding.
[0119] 3. Zero-run encoding
[0120] For example, taking color information as an example, zero run encoding may include: first, determining whether the YUV or RGB components are all 0, if all are 0, then length++; if not all are 0, then encoding the run length (length), and then encoding the YUV or RGB value respectively. The specific process of encoding the length value may be as follows:
[0121] Use probability model -1: Determine whether the length value is 0. If it is 0, encode a 0 and end the current encoding; if it is not 0, encode a 1 and continue the following judgment;
[0122] Use probability model-2: Determine whether the length value is 1. If it is 1, encode a 0 and end the current encoding; if it is not 1, encode a 1 and continue the following judgment;
[0123] Use probability model-3: Determine whether the length value is 2. If it is 2, encode a 0 and end the current encoding; if it is not 2, encode a 1 and continue the following judgment;
[0124] Update the length value: length - = 3;
[0125] Divide the length value by 2, that is, prefix = length / 2;
[0126] Use probability model-4: encode the prefix as a unary code, encoding up to 4 bits:
[0127] Determine whether the prefix value is 0. If it is 0, encode a 0 (using probability model -4) and use bypass encoding to encode the remainder of length%2; if it is not 0, encode a 1 and continue the following judgment;
[0128] Determine whether the prefix value is 1. If it is 1, encode a 0 (using probability model -4), and use bypass encoding to encode the remainder of length%2; if it is not 1, encode a 1, and continue the following judgment;
[0129] Determine whether the prefix value is 2. If it is 2, encode a 0 (using probability model -4), and use bypass encoding to encode the remainder of length%2; if it is not 2, encode a 1, and continue the following judgment;
[0130] Determine whether the prefix value is 3. If it is 3, encode a 0 (using probability model -4) and use bypass encoding to encode the remainder of length%2; if it is not 3, encode a 1 and end this encoding;
[0131] Update length value: length - = 8;
[0132] Use probability model-5: Use second-order exponential Golomb encoding length value.
[0133] It should be noted that the above probability model can also be called a context model.
[0134] The following describes the point cloud attribute encoding method and point cloud attribute decoding method provided by the embodiment of the present application in conjunction with the accompanying drawings. The point cloud attribute encoding method provided by the embodiment of the present application can be executed by the encoding end, for example Figure 1The encoder 200 shown. The point cloud attribute decoding method provided in the embodiment of the present application can be executed by a decoding end, for example Figure 1 The decoder 300. The encoding end and the decoding end may be implemented by software, hardware or a combination thereof. When implemented by hardware, the encoding end may be referred to as an encoding end device or a point cloud attribute encoding device, and the decoding end may be referred to as a decoding end device or a point cloud attribute decoding device.
[0135] See also Figure 6 , Figure 6 is a flow chart of a point cloud attribute encoding method provided in an embodiment of the present application. The method can be executed by an encoding end, such as Figure 6 As shown, the following steps are included:
[0136] Step 601: When determining that a transform coefficient of a node to be encoded is not a first value, the encoder determines a first target context model according to a transform coefficient of a first node and a first distribution characteristic value;
[0137] Step 602: The encoder uses the first target context model to encode the run length to be encoded, and encodes the transform coefficient of the node to be encoded to obtain an attribute code stream;
[0138] Among them, the attribute code stream includes the encoding result of the run length and the encoding result of the transformation coefficient, the first node includes the parent node of the second node or the child node of the grandparent node of the second node, the second node includes at least one of the node to be encoded and the third node, the third node and the node to be encoded are located at the same layer of the first transformation tree, the third node is located before the node to be encoded and the transformation coefficient of the third node is not the first value, the first transformation tree is a transformation tree constructed based on the geometric reconstruction information of the point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded.
[0139] In this embodiment, the node to be encoded may be any node in the first transform tree. The first value may be reasonably set according to actual needs, for example, the first value may be 0.
[0140] The above-mentioned first node may include the parent node of the second node or the child node of the grandparent node of the second node. For example, the above-mentioned first node may be the parent node of the third node, or the above-mentioned first node may include all the child nodes of the grandparent node of the third node, or the above-mentioned first node may be the parent node of the node to be encoded, or the above-mentioned first node may include all the child nodes of the grandparent node of the node to be encoded, or the above-mentioned first node may include the parent node of the third node and the parent node of the node to be encoded, etc.
[0141] The above-mentioned third node is a node located in the same layer as the node to be encoded, located before the node to be encoded and whose transformation coefficient is not the first value. Exemplarily, the above-mentioned node located before the node to be encoded can be understood as a node arranged before the node to be encoded, or a node whose traversal order is earlier than the traversal order of the node to be encoded, etc.
[0142] The above-mentioned first transformation tree is a transformation tree constructed based on the geometric reconstruction information of the point cloud, wherein the geometric reconstruction information of the above-mentioned point cloud is the information obtained by decoding and reconstructing the geometric information after geometric encoding. The encoding, decoding, reconstruction of the geometric information and the construction of the transformation tree based on the geometric reconstruction information can refer to the above-mentioned relevant instructions and will not be repeated here.
[0143] Exemplarily, the point cloud can be reordered, for example, the point cloud is sorted according to the Morton code of each node of the point cloud, and a K-layer RAHT transform tree is constructed using a bottom-up construction method, wherein the bottom layer of the RAHT transform tree contains all the nodes of the point cloud, the top layer of the RAHT transform tree is the root node layer, which contains only one node, and K is a positive integer greater than 1.
[0144] The transform coefficients of each node of the above-mentioned first transform tree are obtained by respectively transforming the attribute information of each node through a preset transform, wherein the above-mentioned preset transform may include a RAHT transform, a Haar transform or a DCT transform, etc. The transform coefficients of the above-mentioned nodes may include AC transform coefficients or AC residual transform coefficients, etc. It should be noted that the calculation method of the AC transform coefficient or the AC residual transform coefficient can refer to the above-mentioned relevant instructions and will not be repeated here. In some examples, the transform coefficients of the above-mentioned nodes may be quantized transform coefficients.
[0145] For example, taking the RAHT transform as an example, based on the above-mentioned first transform tree, upsampling prediction and RAHT transform can be performed on each node layer by layer starting from the root node. For each node, determine whether it is necessary to predict the node. If no prediction is performed, directly perform RAHT transform on the original attribute value of the node to obtain the AC transform coefficient. If prediction is performed, perform RAHT transform on the original attribute value and the predicted attribute value of the node respectively, and subtract the AC transform coefficient of the original attribute value from the AC transform coefficient of the predicted attribute value to obtain the AC residual transform coefficient, and quantize the transform coefficients and residual transform coefficients of all points.
[0146] It is understandable that for a node block containing 2*2*2 child nodes, multiple transform coefficients will be obtained after transformation. In some examples, the transform coefficients of each node of each layer of the first transform tree can be stored, for example, AC transform coefficients or residual transform coefficients, and the index position of the parent node of each node in its corresponding layer is stored to be used as the context of the encoding run length.
[0147] The first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded, wherein the node set corresponding to the node to be encoded may be a point cloud or a subset of a point cloud, for example, a point cloud slice. The attribute information of the node set may be understood as the attribute information of each node of the node set.
[0148] It can be understood that, when the node set is a point cloud, all nodes of the point cloud correspond to the same node set, and all nodes of the point cloud have the same distribution characteristic values.
[0149] Exemplarily, the first distribution characteristic value may be a variance value or a standard deviation value of the attribute information of the node set corresponding to the node to be encoded, or the first distribution characteristic value may be a difference between a maximum value and a minimum value of the attribute information of the node set corresponding to the node to be encoded, or the first distribution characteristic value may be an average value of the absolute values of the attribute information of the node set corresponding to the node to be encoded, etc.
[0150] It should be noted that when the encoder uses run-length coding to encode the transformation coefficients of cloud points, the run length (runlength) is related to the distribution characteristics of the transformation coefficients. When some areas of the point cloud are relatively uneven, the difference in the transformation coefficients of the area will be large, and the transformation coefficients of the corresponding sub-nodes will also be correspondingly large, so that the run length is mostly 0; when some areas of the point cloud are relatively flat, the difference in the transformation coefficients of the area will be small, and the transformation coefficients of the corresponding sub-nodes will also be correspondingly small, so that the run length is mostly not 0. Therefore, the embodiments of the present application use different context models to encode the run length according to different situations, which is conducive to reducing the code stream and improving the coding efficiency.
[0151] Exemplarily, the context model may be a context-based adaptive binary arithmetic coding (CABAC) coding model. The first target context model may include at least one context model, for example, the first target context model includes 5 context models.
[0152] Exemplarily, in the process of encoding the transformation coefficients of cloud points using run-length coding, when the encoding end determines that the transformation coefficient of the node to be encoded is not the first value, it indicates that the run length needs to be encoded at present. In this case, the corresponding context model (i.e., the first target context model) can be selected according to the transformation coefficient of the first node and the first distribution characteristic value to encode the run length to obtain the encoding result of the run length, and the transformation coefficient of the node to be encoded is encoded to obtain the encoding result of the transformation coefficient, wherein the attribute code stream of the above-mentioned point cloud includes the encoding result of the run length and the encoding result of the transformation coefficient.
[0153] It should be noted that after encoding the run length to be encoded, the run length can be set to a first value, for example, 0, and the transformation coefficient of the next node can be judged. When the transformation coefficient of the node to be encoded is the first value, the value of the run length can be increased by 1, and the transformation coefficient of the next node can be judged.
[0154] The cloud point attribute encoding method provided in the embodiment of the present application is that when the encoding end determines that the transformation coefficient of the node to be encoded is not the first value, the encoding end determines the first target context model according to the transformation coefficient of the first node and the first distribution characteristic value; the encoding end uses the first target context model to encode the run length to be encoded, and encodes the transformation coefficient of the node to be encoded to obtain an attribute code stream, that is, the embodiment of the present application can select the corresponding context model to encode the run length to be encoded based on the distribution characteristics of the transformation coefficient of the point cloud, which is conducive to improving the run length encoding efficiency, and further improves the encoding efficiency of the attribute information of the point cloud.
[0155] Optionally, when determining that the transformation coefficient of the node to be encoded is not the first value, the encoder determines the first target context model according to the transformation coefficient of the first node and the first distribution characteristic value, including:
[0156] The encoder determines, when determining that the transform coefficient of the node to be encoded is not the first value, that the first target context model is the first context model if the second distribution characteristic value is greater than or equal to the first threshold;
[0157] or,
[0158] The encoding end determines, when determining that the transformation coefficient of the node to be encoded is not the first value, that the first target context model is the second context model if the second distribution characteristic value is less than a first threshold;
[0159] The second distribution characteristic value is a distribution characteristic value determined according to the transformation coefficient of the first node, and the first threshold is a threshold determined according to the first distribution characteristic value.
[0160] In this embodiment, the first context model may include at least one context model, and the second context model may include at least one context model. The model structure of the first context model and the model structure of the second context model may be the same or different.
[0161] The above-mentioned second distribution characteristic value is a distribution characteristic value determined according to the transformation coefficient of the first node. For example, when the transformation coefficient of the above-mentioned first node only includes one transformation coefficient, the above-mentioned second distribution characteristic value may be the transformation coefficient of the above-mentioned first node; when the transformation coefficient of the above-mentioned first node includes multiple transformation coefficients, the above-mentioned second distribution characteristic value may be a value determined according to multiple transformation coefficients, for example, it may be the average value of the above-mentioned multiple transformation coefficients, or the variance value or standard deviation value of the above-mentioned multiple transformation coefficients, or the difference between the maximum value and the minimum value among the above-mentioned multiple transformation coefficients, etc.
[0162] The above-mentioned first threshold is a threshold determined according to the first distribution characteristic value. For example, the above-mentioned first threshold may be equal to the above-mentioned first distribution characteristic value, or the above-mentioned first threshold may be equal to the ratio of the above-mentioned first distribution characteristic value to the attribute quantization step (AttrQuantStep), wherein the above-mentioned attribute quantization step may be a preconfigured value.
[0163] Exemplarily, when it is determined that the run length needs to be encoded, that is, it is determined that the transformation coefficient of the node to be encoded is not the first value, if the second distribution characteristic value is greater than or equal to the first threshold, it means that the area represented by the first node is relatively uneven, and the transformation coefficients of its child nodes are mostly not the first value, for example, not 0. At this time, the run length to be encoded is probably 0, and the first context model can be used to encode the run length to be encoded; if the second distribution characteristic value is less than the first threshold, it means that the area represented by the first node is relatively flat, and the transformation coefficients of its child nodes are mostly the first value, for example, 0. At this time, the run length to be encoded is probably not 0, and the second context model can be used to encode the run length to be encoded. By using different context models to encode the run length with a value of 0 and the run length with a value not equal to 0, it is beneficial to reduce the number of bits required for run length encoding, thereby improving the efficiency of run length encoding.
[0164] Optionally, the first node is a parent node of the third node, and the second distribution characteristic value is a transformation coefficient of the parent node of the third node;
[0165] or,
[0166] The first node includes all child nodes of the grandparent node of the third node, and the second distribution characteristic value is a value determined according to transformation coefficients of all child nodes of the grandparent node of the third node.
[0167] In one embodiment, the first node is the parent node of the third node, and the second distribution characteristic value is the transformation coefficient of the parent node of the third node, for example, Figure 7a As shown, if the node whose previous transformation coefficient of the node 11 to be encoded is not the first value is the third node 12, the transformation coefficient of the parent node 13 of the third node 12 can be used as the context to encode the run length to be encoded, that is, the transformation coefficient of the parent node 13 of the third node 12 is compared with the first threshold value, and the context model for encoding the run length to be encoded is determined according to the comparison result, so as to use the context model to encode the run length to be encoded.
[0168] In some examples, each node of the first transform tree may store the index of its parent node, so that its parent node may be quickly determined based on the index of its parent node, and then the transform coefficient of its parent node may be obtained.
[0169] In another embodiment, the first node includes all child nodes of the grandparent node of the third node, and the second distribution characteristic value is a value determined according to the transformation coefficients of all child nodes of the grandparent node of the third node, for example, Figure 7b As shown, if the node whose previous transformation coefficient of the node 11 to be encoded is not the first value is the third node 12, the transformation coefficients of all child nodes of the grandparent node 14 of the third node 12 can be used as context to encode the run length to be encoded, that is, the second distribution characteristic value determined based on the transformation coefficients of all child nodes of the grandparent node 14 of the third node 12 is compared with the first threshold value, and the context model for encoding the run length to be encoded is determined according to the comparison result, so as to encode the run length to be encoded using the context model.
[0170] It should be noted that the above Figure 7a or Figure 7b What is shown is a simplified RAHT transformation tree structure. Each node in the figure contains at most 8 child nodes. The solid line points are actually occupied nodes, and the dotted line points are non-existent nodes.
[0171] Optionally, the second distribution characteristic value is a difference between a maximum value and a minimum value of transformation coefficients of all child nodes of a grandparent node of the third node.
[0172] In this embodiment, the second distribution characteristic value may be calculated based on the following formula:
[0173] disCoeffi=Coeffi_max-Coeffi_min
[0174] Among them, disCoeffi represents the second distribution characteristic value, Coeffi_max represents the maximum value of the transformation coefficients of all child nodes of the grandparent node of the third node, and Coeffi_min represents the minimum value of the transformation coefficients of all child nodes of the grandparent node of the third node.
[0175] Optionally, the first context model includes M context models; or, the second context model includes N context models;
[0176] Wherein, M and N are both integers greater than 1.
[0177] In some optional embodiments, the above-mentioned M and N are both equal to 5. For example, the above-mentioned first context model may include context model-1 to context model-5, and the above-mentioned second context model may include context model-6 to context model-10. Exemplarily, the implementation method of encoding the run length using the above-mentioned context model-1 to context model-5 can refer to the aforementioned related description of encoding the run length using the above-mentioned probability model-1 to probability model-5; the implementation method of encoding the run length using the above-mentioned context model-6 to context model-10 can also refer to the aforementioned related description of encoding the run length using the above-mentioned probability model-1 to probability model-5, which will not be repeated here.
[0178] Optionally, the node set corresponding to the node to be encoded is the point cloud to which the node to be encoded belongs or the point cloud slice to which the node to be encoded belongs.
[0179] Optionally, the first distribution characteristic value is related to a difference between a maximum attribute value and a minimum attribute value in the attribute information of the node set;
[0180] or,
[0181] The first distribution characteristic value is related to an average value of absolute values of attribute information of the node set.
[0182] Exemplarily, the first distribution characteristic value may be the difference between the maximum attribute value and the minimum attribute value in the attribute information of the node set, or the first distribution characteristic value may be the ratio of the difference between the maximum attribute value and the minimum attribute value in the attribute information of the node set to the attribute quantization step (AttrQuantStep).
[0183] Optionally, the third node is a node whose previous transformation coefficient of the node to be encoded is not a first value.
[0184] The node whose previous transformation coefficient is not the first value of the above-mentioned node to be encoded can be understood, for example, as the node that is closest to the node to be encoded among the nodes that are arranged before the node to be encoded and whose transformation coefficient is not the first value, or can be understood as the node that is closest to the traversal order of the node to be encoded among the nodes whose traversal order is before the traversal order of the node to be encoded and whose transformation coefficient is not the first value, etc.
[0185] Optionally, the attribute code stream further includes an encoding result of a parameter set, where the parameter set includes a first parameter value, and the first parameter value includes the first distribution characteristic value or a threshold determined according to the first distribution characteristic value.
[0186] Exemplarily, the parameter set may be an attribute parameter set (APS) or an attribute block header (ABH).
[0187] Specifically, when the decoding end obtains the above attribute code stream, it can decode the encoding result based on the parameter set to obtain the parameter set, and then can decode the encoding result of the run length of the attribute code stream based on the first parameter value in the parameter set.
[0188] This embodiment carries the first parameter value in the attribute code stream, so that the decoding end can quickly obtain the first parameter value, so as to decode the encoding result of the run length of the attribute code stream based on the first parameter value.
[0189] See also Figure 8 , Figure 8 is a flowchart of a point cloud attribute encoding method provided in an embodiment of the present application. The method can be executed by a decoding end, such as Figure 8 As shown, the following steps are included:
[0190] Step 801: The decoding end obtains an attribute code stream of the point cloud, where the attribute code stream includes an encoding result of a transformation coefficient and an encoding result of a run length of the point cloud;
[0191] Step 802: When the decoding end obtains a transformation coefficient of a node to be decoded based on the encoding result of the transformation coefficient of the point cloud and the transformation coefficient is not the first value, the second target context model is determined according to the transformation coefficient of the fourth node and the second distribution characteristic value;
[0192] Step 803: The decoding end decodes the run length to be decoded in the encoding result of the run length based on the second target context model;
[0193] Among them, the fourth node includes the parent node of the fifth node or the child node of the grandparent node of the fifth node, the fifth node includes at least one of the node to be decoded and the sixth node, the sixth node and the node to be decoded are located at the same layer of the second transform tree, the sixth node is located before the node to be decoded and the transform coefficient of the sixth node is not the first value, the second transform tree is a transform tree constructed based on the geometric reconstruction information of the point cloud, and the second distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be decoded.
[0194] In this embodiment, the node to be decoded may be any node in the second transform tree. The first value may be reasonably set according to actual needs, for example, the first value may be 0.
[0195] The above-mentioned fourth node may include the parent node of the fifth node or the child node of the grandparent node of the fifth node. For example, the above-mentioned fourth node may be the parent node of the sixth node, or the above-mentioned fourth node may include all the child nodes of the grandparent node of the sixth node, or the above-mentioned fourth node may be the parent node of the node to be decoded, or the above-mentioned fourth node may include all the child nodes of the grandparent node of the node to be decoded, or the above-mentioned fourth node may include the parent node of the sixth node and the parent node of the node to be decoded, etc.
[0196] The above-mentioned sixth node is a node located in the same layer as the node to be decoded, located before the node to be decoded and whose transform coefficient is not the first value. Exemplarily, the above-mentioned node located before the node to be decoded can be understood as a node arranged before the node to be decoded, or a node whose traversal order is earlier than the traversal order of the node to be decoded, etc.
[0197] The second transformation tree is a transformation tree constructed based on the geometric reconstruction information of the point cloud, wherein the geometric reconstruction information of the point cloud is information obtained by decoding and reconstructing the geometric information after geometric coding. The decoding and reconstruction of the geometric information and the construction of the transformation tree based on the geometric reconstruction information can refer to the above-mentioned related instructions, which will not be repeated here. It can be understood that the decoding end also obtains the geometric code stream of the point cloud, which includes the geometric information after geometric coding, and then the decoding end can decode and reconstruct the geometric information after geometric coding to obtain the geometric reconstruction information.
[0198] The second distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be decoded, wherein the node set corresponding to the node to be decoded may be a point cloud or a subset of a point cloud, for example, a point cloud slice. The attribute information of the node set may be understood as the attribute information of each node of the node set.
[0199] It can be understood that, when the node set is a point cloud, all nodes of the point cloud correspond to the same node set, and all nodes of the point cloud have the same distribution characteristic values.
[0200] Exemplarily, the second distribution characteristic value may be a variance value or a standard deviation value of the attribute information of the node set corresponding to the node to be decoded, or the second distribution characteristic value may be a difference between a maximum value and a minimum value of the attribute information of the node set corresponding to the node to be decoded, or the second distribution characteristic value may be an average value of the absolute value of the attribute information of the node set corresponding to the node to be decoded, etc. In some examples, the encoding end may send the second distribution characteristic value to the decoding end.
[0201] The second target context model may include at least one context model. For example, the second target context model includes 5 context models. Exemplarily, the context model may be a CABAC coding model.
[0202] It can be understood that, when the above-mentioned node to be encoded and the above-mentioned node to be decoded are the same node of the point cloud, the above-mentioned second distribution characteristic value and the above-mentioned first distribution characteristic value are the same distribution characteristic value, the above-mentioned fourth node and the above-mentioned first node can be the same node, the above-mentioned fifth node and the above-mentioned second node can be the same node, and the above-mentioned sixth node and the above-mentioned third node can be the same node.
[0203] Exemplarily, the decoding end can decode and reconstruct the acquired geometric code stream to obtain geometric reconstruction information, construct a second transform tree according to the geometric reconstruction information, and decode the attribute code stream according to the second transform tree to obtain transform coefficients and store them in corresponding nodes. For example, when a transform coefficient obtained by decoding the encoding result of the transform coefficient of the point cloud is not the first value, the decoding end can select the corresponding context model (i.e., the second target context model) according to the transform coefficient of the fourth node and the second distribution characteristic value, and decode the run length to be decoded based on the selected context model, and then assign the transform coefficients of the P nodes before the node to be decoded to the first value based on the decoded run length P, wherein the above-mentioned node to be decoded is the node corresponding to the transform coefficient currently decoded.
[0204] Optionally, when the decoding end obtains that the transformation coefficient of the node to be decoded based on the encoding result of the transformation coefficient of the point cloud is not the first value, determining the second target context model according to the transformation coefficient of the fourth node and the second distribution characteristic value, including:
[0205] The decoding end determines that the second target context model is the third context model when the transformation coefficient of the node to be decoded is not the first value obtained by decoding the encoding result of the transformation coefficient of the point cloud and if the fourth distribution characteristic value is greater than or equal to the second threshold value;
[0206] or,
[0207] The decoding end determines that the second target context model is a fourth context model when the transformation coefficient of the node to be decoded is not the first value obtained by decoding the encoding result of the transformation coefficient of the point cloud and if the fourth distribution characteristic value is less than the second threshold value;
[0208] The fourth distribution characteristic value is a distribution characteristic value determined according to a transformation coefficient of the fourth node, and the second threshold is a threshold determined according to the second distribution characteristic value.
[0209] In this embodiment, the third context model may include at least one context model, and the fourth context model may include at least one context model. The model structure of the third context model and the model structure of the fourth context model may be the same or different.
[0210] It should be noted that the third context model corresponds to the first context model, and the fourth context model corresponds to the second context model. In some examples, the third context model is the same as the first context model, and the fourth context model is the same as the second context model.
[0211] The above-mentioned fourth distribution characteristic value is a distribution characteristic value determined according to the transformation coefficient of the first node. For example, when the transformation coefficient of the above-mentioned fourth node only includes one transformation coefficient, the above-mentioned fourth distribution characteristic value may be the transformation coefficient of the above-mentioned fourth node; when the transformation coefficient of the above-mentioned fourth node includes multiple transformation coefficients, the above-mentioned fourth distribution characteristic value may be a value determined based on multiple transformation coefficients, for example, it may be the average value of the above-mentioned multiple transformation coefficients, or the variance value or standard deviation value of the above-mentioned multiple transformation coefficients, or the difference between the maximum value and the minimum value among the above-mentioned multiple transformation coefficients, etc.
[0212] The above-mentioned second threshold is a threshold determined according to the second distribution characteristic value. For example, the above-mentioned second threshold may be equal to the above-mentioned second distribution characteristic value, or the above-mentioned second threshold may be equal to the ratio of the above-mentioned second distribution characteristic value to the attribute quantization step (AttrQuantStep), wherein the above-mentioned attribute quantization step may be a preconfigured value.
[0213] Optionally, the fourth node is a parent node of the fifth node, and the fourth distribution characteristic value is a transformation coefficient of the parent node of the fifth node;
[0214] or,
[0215] The fourth node includes all child nodes of the grandparent node of the fifth node, and the fourth distribution characteristic value is a value determined according to the transformation coefficients of all child nodes of the grandparent node of the fifth node.
[0216] Optionally, the fourth distribution characteristic value is a difference between a maximum value and a minimum value of transformation coefficients of all child nodes of the grandparent node of the fifth node.
[0217] Optionally, the third context model includes M context models; or, the fourth context model includes N context models;
[0218] Wherein, M and N are both integers greater than 1.
[0219] Optionally, the node set corresponding to the node to be decoded is the point cloud to which the node to be decoded belongs or the point cloud slice to which the node to be decoded belongs.
[0220] Optionally, the second distribution characteristic value is related to a difference between a maximum attribute value and a minimum attribute value in the attribute information of the node set;
[0221] or,
[0222] The second distribution characteristic value is related to an average value of absolute values of attribute information of the node set.
[0223] Optionally, the sixth node is a node whose previous transformation coefficient of the node to be decoded is not the first value.
[0224] Optionally, the attribute code stream further includes a decoding result of a parameter set, where the parameter set includes a second parameter value, and the second parameter value includes the second distribution characteristic value or a threshold determined according to the second distribution characteristic value.
[0225] It should be noted that the implementation method of this embodiment can be found in Figure 6 The relevant description of the illustrated embodiment is not repeated here.
[0226] It should be noted that the point cloud attribute encoding method provided in the embodiment of the present application can be executed by a point cloud attribute encoding device, or a control module in the point cloud attribute encoding device for executing the point cloud attribute encoding method. In the embodiment of the present application, the point cloud attribute encoding device provided in the embodiment of the present application is described by taking the point cloud attribute encoding method executed by the point cloud attribute encoding device as an example.
[0227] See also Fig. 9 , Fig. 9 is a structural diagram of a point cloud attribute encoding device provided in an embodiment of the present application, such as Fig. 9 As shown, the point cloud attribute encoding device 900 includes:
[0228] A first determination module 901 is used to determine a first target context model according to the transformation coefficient of the first node and the first distribution characteristic value when it is determined that the transformation coefficient of the node to be encoded is not the first value;
[0229] The encoding module 902 is used to encode the run length to be encoded by using the first target context model, and encode the transformation coefficient of the node to be encoded to obtain an attribute code stream;
[0230] Among them, the attribute code stream includes the encoding result of the run length and the encoding result of the transformation coefficient, the first node includes the parent node of the second node or the child node of the grandparent node of the second node, the second node includes at least one of the node to be encoded and the third node, the third node and the node to be encoded are located at the same layer of the first transformation tree, the third node is located before the node to be encoded and the transformation coefficient of the third node is not the first value, the first transformation tree is a transformation tree constructed based on the geometric reconstruction information of the point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded.
[0231] Optionally, the first determining module is specifically configured to:
[0232] In a case where it is determined that the transformation coefficient of the node to be encoded is not the first value, if the second distribution characteristic value is greater than or equal to the first threshold, determining that the first target context model is the first context model;
[0233] or,
[0234] In a case where it is determined that the transformation coefficient of the node to be encoded is not the first value, if the second distribution characteristic value is less than a first threshold, determining that the first target context model is a second context model;
[0235] The second distribution characteristic value is a distribution characteristic value determined according to the transformation coefficient of the first node, and the first threshold is a threshold determined according to the first distribution characteristic value.
[0236] Optionally, the first node is a parent node of the third node, and the second distribution characteristic value is a transformation coefficient of the parent node of the third node;
[0237] or,
[0238] The first node includes all child nodes of the grandparent node of the third node, and the second distribution characteristic value is a value determined according to transformation coefficients of all child nodes of the grandparent node of the third node.
[0239] Optionally, the second distribution characteristic value is a difference between a maximum value and a minimum value of transformation coefficients of all child nodes of a grandparent node of the third node.
[0240] Optionally, the first context model includes M context models; or, the second context model includes N context models;
[0241] Wherein, M and N are both integers greater than 1.
[0242] Optionally, the node set corresponding to the node to be encoded is the point cloud to which the node to be encoded belongs or the point cloud slice to which the node to be encoded belongs.
[0243] Optionally, the first distribution characteristic value is related to a difference between a maximum attribute value and a minimum attribute value in the attribute information of the node set;
[0244] or,
[0245] The first distribution characteristic value is related to an average value of absolute values of attribute information of the node set.
[0246] Optionally, the third node is a node whose previous transformation coefficient of the node to be encoded is not a first value.
[0247] Optionally, the attribute code stream further includes an encoding result of a parameter set, where the parameter set includes a first parameter value, and the first parameter value includes the first distribution characteristic value or a threshold determined according to the first distribution characteristic value.
[0248] The point cloud attribute encoding device in the embodiment of the present application may be an electronic device, such as an electronic device with an operating system, or a component in an electronic device, such as an integrated circuit or a chip. The electronic device may be a terminal or other device other than a terminal.
[0249] The point cloud attribute encoding device provided in the embodiment of the present application can achieve Figure 6 The various processes implemented by the method embodiment and achieving the same technical effect are not described here to avoid repetition.
[0250] See also Fig.10 , Fig.10 is a structural diagram of a point cloud attribute encoding device provided in an embodiment of the present application, such as Fig.10 As shown, the point cloud attribute encoding device 1000 includes:
[0251] An acquisition module 1001 is used to acquire an attribute code stream of a point cloud, wherein the attribute code stream includes an encoding result of a transformation coefficient and an encoding result of a run length of the point cloud;
[0252] A second determination module 1002 is configured to determine a second target context model according to the transformation coefficient of a fourth node and a second distribution characteristic value when the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value;
[0253] A decoding module 1003, configured to decode the run length to be decoded in the encoding result of the run length based on the second target context model;
[0254] Among them, the fourth node includes the parent node of the fifth node or the child node of the grandparent node of the fifth node, the fifth node includes at least one of the node to be decoded and the sixth node, the sixth node and the node to be decoded are located at the same layer of the second transform tree, the sixth node is located before the node to be decoded and the transform coefficient of the sixth node is not the first value, the second transform tree is a transform tree constructed based on the geometric reconstruction information of the point cloud, and the second distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be decoded.
[0255] Optionally, the second determining module is specifically configured to:
[0256] When the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value, if the fourth distribution characteristic value is greater than or equal to the second threshold, determining that the second target context model is the third context model;
[0257] or,
[0258] When the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value, if the fourth distribution characteristic value is less than the second threshold, determining that the second target context model is the fourth context model;
[0259] The fourth distribution characteristic value is a distribution characteristic value determined according to a transformation coefficient of the fourth node, and the second threshold is a threshold determined according to the second distribution characteristic value.
[0260] Optionally, the fourth node is a parent node of the fifth node, and the fourth distribution characteristic value is a transformation coefficient of the parent node of the fifth node;
[0261] or,
[0262] The fourth node includes all child nodes of the grandparent node of the fifth node, and the fourth distribution characteristic value is a value determined according to the transformation coefficients of all child nodes of the grandparent node of the fifth node.
[0263] Optionally, the fourth distribution characteristic value is a difference between a maximum value and a minimum value of transformation coefficients of all child nodes of the grandparent node of the fifth node.
[0264] Optionally, the third context model includes M context models; or, the fourth context model includes N context models;
[0265] Wherein, M and N are both integers greater than 1.
[0266] Optionally, the node set corresponding to the node to be decoded is the point cloud to which the node to be decoded belongs or the point cloud slice to which the node to be decoded belongs.
[0267] Optionally, the second distribution characteristic value is related to a difference between a maximum attribute value and a minimum attribute value in the attribute information of the node set;
[0268] or,
[0269] The second distribution characteristic value is related to an average value of absolute values of attribute information of the node set.
[0270] Optionally, the sixth node is a node whose previous transformation coefficient of the node to be decoded is not the first value.
[0271] Optionally, the attribute code stream further includes a decoding result of a parameter set, where the parameter set includes a second parameter value, and the second parameter value includes the second distribution characteristic value or a threshold determined according to the second distribution characteristic value.
[0272] The point cloud attribute encoding device in the embodiment of the present application can be an electronic device, such as an electronic device with an operating system, or a component in an electronic device, such as an integrated circuit or a chip. The electronic device can be a network-side device or other device except the network-side device.
[0273] The point cloud attribute encoding device provided in the embodiment of the present application can achieve Figure 8 The various processes implemented by the method embodiment and achieving the same technical effect are not described here to avoid repetition.
[0274] like Fig.11As shown, the embodiment of the present application further provides an electronic device 1100, including a processor 1101 and a memory 1102, the memory 1102 stores programs or instructions that can be run on the processor 1101, for example, when the electronic device 1100 is an encoding end device, the program or instruction is executed by the processor 1101 to implement the various steps of the above-mentioned point cloud attribute encoding method embodiment, and can achieve the same technical effect. When the electronic device 1100 is a decoding end device, the program or instruction is executed by the processor 1101 to implement the various steps of the above-mentioned point cloud attribute decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here. Optionally, the memory 1102 can be Figure 1 In the memory 102 or the memory 113 in the embodiment shown, the processor 1101 may implement Figure 1 Functionality of the encoder 200 or decoder 300 in the illustrated embodiment.
[0275] The present application also provides an electronic device, including: a memory configured to store video data; and a processing circuit configured to implement the various steps of the above-mentioned point cloud attribute encoding method embodiment, or configured to implement the various steps of the above-mentioned point cloud attribute decoding method embodiment. Optionally, the memory may be Figure 1 In the memory 102 or the memory 113 in the embodiment shown, the processing circuit can implement Figure 1 Functionality of the encoder 200 or decoder 300 in the illustrated embodiment.
[0276] The embodiment of the present application also provides an electronic device, including a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run a program or instruction to implement the following Figure 6 The steps in the method embodiment shown in the figure, or, implementing the Figure 8 The steps in the method embodiment are shown. This device embodiment corresponds to the above method embodiment, and each implementation process and implementation mode of the above method embodiment can be applied to this electronic device embodiment and can achieve the same technical effect.
[0277] The electronic device may be a terminal, or may be other devices other than a terminal, such as a server, a network attached storage (NAS), etc.
[0278] Among them, the terminal can be a mobile phone, a tablet personal computer, a laptop computer, a notebook computer, a personal digital assistant (PDA), a handheld computer, a netbook, an ultra-mobile personal computer (UMPC), a mobile Internet device (MID), an augmented reality (AR), a virtual reality (VR) device, a mixed reality (MR) device, a robot, a wearable device (Wearable Device), a flight vehicle, a vehicle user equipment (VUE), a ship-borne equipment, a pedestrian terminal (Pedestrian User Equipment, PUE), a smart home (home appliances with wireless communication functions, such as refrigerators, televisions, washing machines or furniture, etc.), a game console, a personal computer (PC), a teller machine or a self-service machine and other terminal-side devices. Wearable devices include: smart watches, smart bracelets, smart headphones, smart glasses, smart jewelry (smart bracelets, smart bracelets, smart rings, smart necklaces, smart anklets, smart anklets, etc.), smart wristbands, smart clothing, etc. Among them, the vehicle-mounted device can also be called a vehicle-mounted terminal, a vehicle-mounted controller, a vehicle-mounted module, a vehicle-mounted component, a vehicle-mounted chip or a vehicle-mounted unit, etc. It should be noted that the specific type of the terminal is not limited in the embodiments of the present application.
[0279] The server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that can provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), or cloud computing services based on big data and artificial intelligence platforms.
[0280] Exemplarily, the electronic device may include but is not limited to Figure 1 The type of source device 100 or destination device 110 shown.
[0281] Taking electronic devices as terminals as an example, Fig.12 A schematic diagram of the hardware structure of a terminal for implementing an embodiment of the present application.
[0282] The terminal 1200 includes but is not limited to: a radio frequency unit 1201, a network module 1202, an audio output unit 1203, an input unit 1204, a sensor 1205, a display unit 1206, a user input unit 1207, an interface unit 1208, a memory 1209 and at least some of the components of the processor 1210.
[0283] Those skilled in the art will appreciate that the terminal 1200 may also include a power source (such as a battery) for supplying power to various components, and the power source may be logically connected to the processor 1210 through a power management system, thereby implementing functions such as managing charging, discharging, and power consumption management through the power management system. Fig.12 The terminal structure shown in the figure does not constitute a limitation on the terminal. The terminal may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently, which will not be described in detail here.
[0284] It should be understood that in the embodiment of the present application, the input unit 1204 may include a graphics processing unit (GPU) 12041 and a microphone 12042, and the graphics processor 12041 processes the image data of a static picture or video obtained by an image acquisition device (such as a camera) in a video acquisition mode or an image acquisition mode, or may process the obtained point cloud data. The display unit 1206 may include a display panel 12061, and the display panel 12061 may be configured in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 1207 includes at least one of a touch panel 12071 and other input devices 12072. The touch panel 12071 is also called a touch screen. The touch panel 12071 may include two parts: a touch detection device and a touch controller. Other input devices 12072 may include, but are not limited to, a physical keyboard, function keys (such as a volume control key, a switch key, etc.), a trackball, a mouse, and a joystick, which will not be repeated here.
[0285] In the embodiment of the present application, after receiving downlink data from the network side device, the RF unit 1201 can transmit the data to the processor 1210 for processing; in addition, the RF unit 1201 can send uplink data to the network side device. Generally, the RF unit 1201 includes but is not limited to an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.
[0286] The memory 1209 can be used to store software programs or instructions and various data. The memory 1209 may mainly include a first storage area for storing programs or instructions and a second storage area for storing data, wherein the first storage area may store an operating system, an application program or instruction required for at least one function (such as a sound playback function, an image playback function, etc.), etc. In addition, the memory 1209 may include a volatile memory or a non-volatile memory. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDRSDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchronous link dynamic random access memory (SLDRAM) and a direct memory bus random access memory (DRRAM). The memory 1209 in the embodiment of the present application includes but is not limited to these and any other suitable types of memory.
[0287] The processor 1210 may include one or more processing units; optionally, the processor 1210 integrates an application processor and a modem processor, wherein the application processor mainly processes operations related to an operating system, a user interface, and application programs, and the modem processor mainly processes wireless communication signals, such as a baseband processor. It is understandable that the modem processor may not be integrated into the processor 1210.
[0288] The processor 1210 is configured to determine a first target context model according to the transform coefficient of the first node and a first distribution characteristic value when it is determined that the transform coefficient of the node to be encoded is not the first value; the first target context model is used to encode the run length to be encoded, and the transform coefficient of the node to be encoded is encoded to obtain an attribute code stream; wherein the attribute code stream includes an encoding result of the run length and an encoding result of the transform coefficient, the first node includes a child node of a parent node of a second node or a grandparent node of the second node, the second node includes at least one of the node to be encoded and a third node, the third node and the node to be encoded are located at the same layer of a first transform tree, the third node is located before the node to be encoded and the transform coefficient of the third node is not the first value, the first transform tree is a transform tree constructed based on geometric reconstruction information of a point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to attribute information of a node set corresponding to the node to be encoded;
[0289] or,
[0290] The radio frequency unit 1201 is used to obtain an attribute code stream of the point cloud, where the attribute code stream includes an encoding result of a transformation coefficient and an encoding result of a run length of the point cloud;
[0291] Processor 1210 is used to determine a second target context model based on the transform coefficient of the fourth node and the second distribution characteristic value when, when the transform coefficient of the node to be decoded obtained by decoding the encoding result of the transform coefficient of the point cloud is not the first value; the decoding end decodes the run length to be decoded in the encoding result of the run length based on the second target context model; wherein the fourth node includes a child node of the parent node of the fifth node or a child node of the grandparent node of the fifth node, the fifth node includes at least one of the node to be decoded and the sixth node, the sixth node and the node to be decoded are located at the same layer of the second transform tree, the sixth node is located before the node to be decoded and the transform coefficient of the sixth node is not the first value, the second transform tree is a transform tree constructed based on the geometric reconstruction information of the point cloud, and the second distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be decoded.
[0292] It can be understood that the implementation process of each implementation method mentioned in this embodiment can refer to the relevant description of the above-mentioned point cloud attribute encoding method embodiment or the point cloud attribute decoding method embodiment, and achieve the same or corresponding technical effect. To avoid repetition, it will not be repeated here.
[0293] An embodiment of the present application also provides a readable storage medium, on which a program or instruction is stored. When the program or instruction is executed by a processor, the various processes of the above-mentioned point cloud attribute encoding method embodiment are implemented, or the various processes of the above-mentioned point cloud attribute decoding method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
[0294] The processor is the processor in the terminal described in the above embodiment. The readable storage medium includes a computer-readable storage medium, such as a ROM, RAM, a magnetic disk or an optical disk. In some examples, the readable storage medium may be a non-transient readable storage medium.
[0295] An embodiment of the present application further provides a chip, which includes a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the various processes of the above-mentioned point cloud attribute encoding method embodiment, or to implement the various processes of the above-mentioned point cloud attribute decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0296] It should be understood that the chip mentioned in the embodiments of the present application may include a system-level chip (also referred to as a system chip, a chip system or a system-on-chip chip), and may also include an independent display chip, etc.
[0297] The embodiments of the present application further provide a computer program / program product, which is stored in a storage medium, and is executed by at least one processor to implement the various processes of the above-mentioned point cloud attribute encoding method embodiment, or to implement the various processes of the above-mentioned point cloud attribute decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0298] The embodiment of the present application also provides a coding and decoding system, including: a coding end device and a decoding end device, wherein the coding end device can be used to execute the steps of the cloud attribute coding method described above, and the decoding end device can be used to execute the steps of the cloud attribute decoding method described above.
[0299] It should be noted that, in this article, the terms "comprise", "include" or any other variant thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises one..." does not exclude the presence of other identical elements in the process, method, article or device including the element. In addition, it should be pointed out that the scope of the method and device in the embodiment of the present application is not limited to performing functions in the order shown or discussed, and may also include performing functions in a substantially simultaneous manner or in reverse order according to the functions involved, for example, the described method may be performed in an order different from that described, and various steps may also be added, omitted or combined. In addition, the features described with reference to certain examples may be combined in other examples.
[0300] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of a computer software product plus a necessary general hardware platform, and of course, can also be implemented by hardware. The computer software product is stored in a storage medium (such as ROM, RAM, disk, CD, etc.), including several instructions to enable a terminal or a network-side device to execute the methods described in each embodiment of the present application.
[0301] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of the present application, ordinary technicians in this field can also make many forms of implementation methods without departing from the purpose of the present application and the scope of protection of the claims, and these implementation methods are all within the protection of the present application.
Claims
1. A point cloud attribute encoding method, characterized in that: include: The encoder determines, when determining that the transformation coefficient of the node to be encoded is not the first value, a first target context model according to the transformation coefficient of the first node and the first distribution characteristic value; The encoder uses the first target context model to encode the run length to be encoded, and encodes the transformation coefficient of the node to be encoded to obtain an attribute code stream; Among them, the attribute code stream includes the encoding result of the run length and the encoding result of the transformation coefficient, the first node includes the parent node of the second node or the child node of the grandparent node of the second node, the second node includes at least one of the node to be encoded and the third node, the third node and the node to be encoded are located at the same layer of the first transformation tree, the third node is located before the node to be encoded and the transformation coefficient of the third node is not the first value, the first transformation tree is a transformation tree constructed based on geometric reconstruction information of a point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded.
2. The method according to claim 1, characterized in that The encoder determines, when determining that the transformation coefficient of the node to be encoded is not the first value, a first target context model according to the transformation coefficient of the first node and the first distribution characteristic value, including: The encoder determines, when determining that the transform coefficient of the node to be encoded is not the first value, that the first target context model is the first context model if the second distribution characteristic value is greater than or equal to the first threshold; or, The encoding end determines, when determining that the transformation coefficient of the node to be encoded is not the first value, that the first target context model is the second context model if the second distribution characteristic value is less than a first threshold; The second distribution characteristic value is a distribution characteristic value determined according to the transformation coefficient of the first node, and the first threshold is a threshold determined according to the first distribution characteristic value.
3. The method according to claim 2, characterized in that The first node is a parent node of the third node, and the second distribution characteristic value is a transformation coefficient of the parent node of the third node; or, The first node includes all child nodes of the grandparent node of the third node, and the second distribution characteristic value is a value determined according to transformation coefficients of all child nodes of the grandparent node of the third node.
4. The method according to claim 3, characterized in that The second distribution characteristic value is a difference between a maximum value and a minimum value among transformation coefficients of all child nodes of the grandparent node of the third node.
5. The method according to any one of claims 2 to 4, characterized in that The first context model includes M context models; or, the second context model includes N context models; Wherein, M and N are both integers greater than 1.
6. The method according to any one of claims 1 to 5, characterized in that The node set corresponding to the node to be encoded is the point cloud to which the node to be encoded belongs or the point cloud slice to which the node to be encoded belongs.
7. The method according to any one of claims 1 to 6, characterized in that The first distribution characteristic value is related to a difference between a maximum attribute value and a minimum attribute value in the attribute information of the node set; or, The first distribution characteristic value is related to an average value of absolute values of attribute information of the node set.
8. The method according to any one of claims 1 to 7, characterized in that The third node is a node whose previous transformation coefficient of the node to be encoded is not the first value.
9. The method according to any one of claims 1 to 8, characterized in that The attribute code stream further includes an encoding result of a parameter set, where the parameter set includes a first parameter value, and the first parameter value includes the first distribution characteristic value or a threshold determined according to the first distribution characteristic value.
10. A point cloud attribute decoding method, characterized in that: include: The decoding end obtains an attribute code stream of the point cloud, wherein the attribute code stream includes an encoding result of a transformation coefficient and an encoding result of a run length of the point cloud; The decoding end determines a second target context model according to the transformation coefficient of the fourth node and the second distribution characteristic value when the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value; The decoding end decodes the run length to be decoded in the encoding result of the run length based on the second target context model; Among them, the fourth node includes the parent node of the fifth node or the child node of the grandparent node of the fifth node, the fifth node includes at least one of the node to be decoded and the sixth node, the sixth node and the node to be decoded are located at the same layer of the second transform tree, the sixth node is located before the node to be decoded and the transform coefficient of the sixth node is not the first value, the second transform tree is a transform tree constructed based on the geometric reconstruction information of the point cloud, and the second distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be decoded.
11. The method according to claim 10, characterized in that The decoding end determines a second target context model according to the transformation coefficient of the fourth node and the second distribution characteristic value when the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value, including: The decoding end determines that the second target context model is the third context model when the transformation coefficient of the node to be decoded is not the first value obtained by decoding the encoding result of the transformation coefficient of the point cloud and if the fourth distribution characteristic value is greater than or equal to the second threshold value; or, The decoding end determines that the second target context model is a fourth context model when the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value and if the fourth distribution characteristic value is less than the second threshold value; The fourth distribution characteristic value is a distribution characteristic value determined according to a transformation coefficient of the fourth node, and the second threshold is a threshold determined according to the second distribution characteristic value.
12. The method according to claim 11, characterized in that The fourth node is the parent node of the fifth node, and the fourth distribution characteristic value is the transformation coefficient of the parent node of the fifth node; or, The fourth node includes all child nodes of the grandparent node of the fifth node, and the fourth distribution characteristic value is a value determined according to the transformation coefficients of all child nodes of the grandparent node of the fifth node.
13. The method according to claim 12, characterized in that The fourth distribution characteristic value is a difference between a maximum value and a minimum value among transformation coefficients of all child nodes of the grandparent node of the fifth node.
14. The method according to any one of claims 11 to 13, characterized in that The third context model includes M context models; or, the fourth context model includes N context models; Wherein, M and N are both integers greater than 1.
15. The method according to any one of claims 10 to 14, characterized in that The node set corresponding to the node to be decoded is the point cloud to which the node to be decoded belongs or the point cloud slice to which the node to be decoded belongs.
16. The method according to any one of claims 10 to 15, characterized in that The second distribution characteristic value is related to a difference between a maximum attribute value and a minimum attribute value in the attribute information of the node set; or, The second distribution characteristic value is related to an average value of absolute values of attribute information of the node set.
17. The method according to any one of claims 10 to 16, characterized in that The sixth node is a node whose previous transformation coefficient of the node to be decoded is not the first value.
18. The method according to any one of claims 10 to 17, characterized in that The attribute code stream further includes a decoding result of a parameter set, where the parameter set includes a second parameter value, and the second parameter value includes the second distribution characteristic value or a threshold determined according to the second distribution characteristic value.
19. A point cloud attribute encoding device, characterized in that: include: A first determination module, configured to determine a first target context model according to the transformation coefficient of the first node and a first distribution characteristic value when it is determined that the transformation coefficient of the node to be encoded is not the first value; An encoding module, configured to encode the run length to be encoded by adopting the first target context model, and encode the transform coefficient of the node to be encoded to obtain an attribute code stream; Among them, the attribute code stream includes the encoding result of the run length and the encoding result of the transformation coefficient, the first node includes the parent node of the second node or the child node of the grandparent node of the second node, the second node includes at least one of the node to be encoded and the third node, the third node and the node to be encoded are located at the same layer of the first transformation tree, the third node is located before the node to be encoded and the transformation coefficient of the third node is not the first value, the first transformation tree is a transformation tree constructed based on the geometric reconstruction information of the point cloud, and the first distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be encoded.
20. The device according to claim 19, characterized in that The first determining module is specifically used for: In a case where it is determined that the transformation coefficient of the node to be encoded is not the first value, if the second distribution characteristic value is greater than or equal to the first threshold, determining that the first target context model is the first context model; or, In a case where it is determined that the transformation coefficient of the node to be encoded is not the first value, if the second distribution characteristic value is less than a first threshold, determining that the first target context model is a second context model; The second distribution characteristic value is a distribution characteristic value determined according to the transformation coefficient of the first node, and the first threshold is a threshold determined according to the first distribution characteristic value.
21. A point cloud attribute decoding device, characterized in that: include: An acquisition module, used for acquiring an attribute code stream of a point cloud, wherein the attribute code stream includes an encoding result of a transformation coefficient and an encoding result of a run length of the point cloud; A second determination module is used to determine a second target context model according to the transformation coefficient of the fourth node and the second distribution characteristic value when the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value; A decoding module, configured to decode the run length to be decoded in the encoding result of the run length based on the second target context model; Among them, the fourth node includes the parent node of the fifth node or the child node of the grandparent node of the fifth node, the fifth node includes at least one of the node to be decoded and the sixth node, the sixth node and the node to be decoded are located at the same layer of the second transform tree, the sixth node is located before the node to be decoded and the transform coefficient of the sixth node is not the first value, the second transform tree is a transform tree constructed based on the geometric reconstruction information of the point cloud, and the second distribution characteristic value is a distribution characteristic value determined according to the attribute information of the node set corresponding to the node to be decoded.
22. The device according to claim 21, characterized in that The second determining module is specifically used for: When the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value, if the fourth distribution characteristic value is greater than or equal to the second threshold, determining that the second target context model is the third context model; or, When the transformation coefficient of the node to be decoded obtained by decoding the encoding result of the transformation coefficient of the point cloud is not the first value, if the fourth distribution characteristic value is less than the second threshold, determining that the second target context model is the fourth context model; The fourth distribution characteristic value is a distribution characteristic value determined according to a transformation coefficient of the fourth node, and the second threshold is a threshold determined according to the second distribution characteristic value.
23. An electronic device, characterized in that: The method comprises a processor and a memory, wherein the memory stores a program or instruction that can be run on the processor, and when the program or instruction is executed by the processor, the steps of the point cloud attribute encoding method as described in any one of claims 1 to 9 are implemented, or the steps of the point cloud attribute decoding method as described in any one of claims 10 to 18 are implemented.
24. A readable storage medium, characterized in that: The readable storage medium stores a program or instruction, and when the program or instruction is executed by the processor, the steps of the point cloud attribute encoding method as described in any one of claims 1 to 9 are implemented, or the steps of the point cloud attribute decoding method as described in any one of claims 10 to 18 are implemented.
Citation Information
Patent Citations
Point cloud coding method and device, point cloud decoding method and device and communication equipment
CN116233387A
Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2022119419A1
Point cloud geometric information encoding processing method, decoding processing method, and related device
WO2022257970A1
Point cloud encoding method, point cloud decoding method, communication node, and storage medium
WO2023116443A1