Point cloud attribute encoding method and apparatus, point cloud attribute decoding method and apparatus, and electronic device

By performing prediction, quantization, and entropy coding on point cloud transform blocks, the problem of low efficiency in point cloud attribute coding is solved, and efficient coding under sparse and irregular conditions is achieved.

WO2026153196A1PCT designated stage Publication Date: 2026-07-23VIVO MOBILE COMM CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
VIVO MOBILE COMM CO LTD
Filing Date
2026-01-07
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

In set-based point cloud compression, the point cloud attribute encoding efficiency is low, resulting in low overall encoding efficiency.

Method used

The encoder predicts and transforms the transform block to be encoded to obtain transform coefficients, which are then quantized. The context index is determined based on the context information of the quantized transform coefficients, and then the probability model of entropy coding is determined to realize the encoding of the distribution characteristics of the transform coefficients.

Benefits of technology

It improves the efficiency of point cloud attribute encoding, can quickly determine the block index of transform coefficients in transform blocks, adapts to the sparsity and irregularity of point clouds, and improves encoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2026071092_23072026_PF_FP_ABST
    Figure CN2026071092_23072026_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of video encoding and decoding, and discloses a point cloud attribute encoding method and apparatus, a point cloud attribute decoding method and apparatus, and an electronic device. The point cloud attribute encoding method of the embodiments of the present application comprises: an encoding end acquires a transform block to be encoded in a point cloud to be encoded; the encoding end predicts and transforms said transform block to obtain a transform coefficient of said transform block; the encoding end quantizes the transform coefficient of said transform block, and determines a context index on the basis of context information of the quantized transform coefficient, wherein the context information comprises a block index corresponding to the quantized transform coefficient in said transform block; on the basis of the context index, the encoding end determines a first probability model used for entropy encoding; and the encoding end performs entropy encoding on a first identifier on the basis of the first probability model, wherein the first identifier is used for representing a distribution feature of a component of the quantized transform coefficient.
Need to check novelty before this filing date? Find Prior Art

Description

Point cloud attribute encoding methods, decoding methods, devices and electronic equipment

[0001] Cross-references to related applications

[0002] This application claims priority to Chinese Patent Application No. 202510058067.9, filed in China on January 14, 2025, the entire contents of which are incorporated herein by reference. Technical Field

[0003] This application belongs to the field of video encoding and decoding technology, specifically relating to a point cloud attribute encoding method, decoding method, device, and electronic device. Background Technology

[0004] In the Geometry-based Point Cloud Compression (G-PCC) encoder framework, the geometric and attribute information of the point cloud are encoded separately. Currently, G-PCC attribute encoding can be divided into region adaptive transformation based on upsampling prediction and lifting transformation based on hierarchical structure partitioning.

[0005] In attribute inter-frame coding based on region adaptive transform using upsampling prediction, a context-adaptive binary arithmetic entropy coding algorithm is employed. This algorithm requires the use of Direct Current (DC) and Alternating Current (AC) coefficients of the coded transform block. Due to the sparsity and irregularity of point clouds, not all AC coefficients exist, resulting in the meaning of the coefficient corresponding to each index in the coefficient storage array not being the same each time, leading to low coding efficiency. Summary of the Invention

[0006] This application provides a point cloud attribute encoding method, decoding method, apparatus, and electronic device, which can solve the problem of low efficiency in point cloud attribute encoding in related technologies.

[0007] Firstly, a point cloud attribute encoding method is provided, executed by the encoding end, which includes:

[0008] The encoding end acquires the transform block to be encoded from the point cloud to be encoded;

[0009] The encoding end predicts and transforms the transform block to be encoded to obtain the transform coefficients of the transform block to be encoded;

[0010] The encoding end quantizes the transform coefficients of the transform block to be encoded and determines the context index based on the context information of the quantized transform coefficients; wherein, the context information includes the block index corresponding to the quantized transform coefficients in the transform block to be encoded;

[0011] The encoding end determines a first probability model for entropy coding based on the context index;

[0012] The encoding end performs entropy encoding on the first identifier based on the first probability model. The first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients.

[0013] Secondly, a point cloud attribute decoding method is provided, executed by the decoding end, which includes:

[0014] The decoding end acquires the transform block to be decoded from the point cloud to be decoded;

[0015] The decoding end performs entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded;

[0016] The decoding end determines the context index based on the context information of the transform coefficients, wherein the context information includes the block index corresponding to the dequantized transform coefficients in the transform block to be decoded.

[0017] The decoding end determines a second probability model for entropy decoding based on the context index;

[0018] The decoding end performs entropy decoding on the third identifier based on the second probability model, and the third identifier is used to characterize the distribution characteristics of the components of the transform coefficient.

[0019] Thirdly, a point cloud attribute encoding device is provided, comprising:

[0020] The first acquisition module is used to acquire the transform block to be encoded in the point cloud to be encoded.

[0021] The first prediction and transformation module is used to predict and transform the transform block to be encoded to obtain the transformation coefficients of the transform block to be encoded.

[0022] The first determining module is used to quantize the transform coefficients of the transform block to be encoded, and determine the context index based on the context information of the quantized transform coefficients; wherein, the context information includes the block index corresponding to the quantized transform coefficients in the transform block to be encoded.

[0023] The second determining module is used to determine a first probability model for entropy coding based on the context index;

[0024] The encoding module is used to entropy encode the first identifier based on the first probability model, wherein the first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients.

[0025] Fourthly, a point cloud attribute decoding device is provided, comprising:

[0026] The second acquisition module is used to acquire the transform block to be decoded in the point cloud to be decoded;

[0027] The first decoding module is used to perform entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded;

[0028] The third determining module is used to determine the context index based on the context information of the transform coefficients, wherein the context information includes the block index corresponding to the transform coefficients in the transform block to be decoded;

[0029] The fourth determining module is used to determine a second probability model for entropy decoding based on the context index;

[0030] The second decoding module is used to perform entropy decoding on the third identifier based on the second probability model, wherein the third identifier is used to characterize the distribution characteristics of the components of the transform coefficients.

[0031] Fifthly, a point cloud attribute processing apparatus is provided, the apparatus being configured to perform the steps of the method described in the first aspect, or to implement the steps of the method described in the second aspect.

[0032] In a sixth aspect, an electronic device is provided, the terminal including a processor and a memory, the memory storing a program or instructions executable on the processor, the program or instructions, when executed by the processor, implementing the steps of the method as described in the first aspect, or implementing the steps of the method as described in the second aspect.

[0033] In a seventh aspect, an electronic device is provided, including a processor and a communication interface, wherein, when the electronic device is an encoding end, the processor is configured to acquire a transform block to be encoded in a point cloud to be encoded; predict and transform the transform block to be encoded to obtain transform coefficients of the transform block to be encoded; quantize the transform coefficients of the transform block to be encoded, and determine a context index based on the context information of the quantized transform coefficients; wherein the context information includes the block index corresponding to the quantized transform coefficients in the transform block to be encoded; determine a first probability model for entropy encoding based on the context index; and entropy encode a first identifier based on the first probability model, wherein the first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients;

[0034] When the electronic device is a decoding end, the processor is used to acquire the transform block to be decoded in the point cloud to be decoded; perform entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded; determine a context index based on the context information of the transform coefficients, wherein the context information includes the block index corresponding to the transform coefficient in the transform block to be decoded; determine a second probability model for entropy decoding based on the context index; and perform entropy decoding on a third identifier based on the second probability model, wherein the third identifier is used to characterize the distribution characteristics of the components of the transform coefficient.

[0035] Eighthly, an electronic device is provided, comprising: a memory configured to store video data, and processing circuitry configured to implement the steps of the method described in the first aspect, or the steps of the method described in the second aspect.

[0036] A ninth aspect provides a readable storage medium on which a program or instructions are stored, which, when executed by a processor, implement the steps of the method described in the first aspect, or implement the steps of the method described in the second aspect.

[0037] In a tenth aspect, a coding / decoding system is provided, comprising: an encoding end device and a decoding end device, wherein the encoding end device is configured to perform the steps of the method described in the first aspect, and the decoding end device is configured to perform the steps of the method described in the second aspect.

[0038] Eleventhly, a chip is provided, the chip including a processor and a communication interface coupled to the processor, the processor being configured 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 second aspect.

[0039] In a twelfth aspect, a computer program / program product is provided, which is stored in a storage medium and is executed by at least one processor to implement the steps of the method as described in the first aspect, or to implement the steps of the method as described in the second aspect.

[0040] In this embodiment, the encoder predicts and transforms the transform block to be encoded, obtains the transform coefficients of the transform block, quantizes the transform coefficients, determines the context index based on the context information of the quantized transform coefficients, and further determines the corresponding first probability model based on the context index. Then, entropy encoding is performed on the first identifier based on the first probability model. The first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients, and the context information used to determine the context index includes the block index corresponding to the quantized transform coefficient in the transform block to be encoded. Therefore, the encoder can determine the context index based on the block index corresponding to the quantized transform coefficient. Since the position of the transform coefficient in the transform block to be encoded is fixed, its corresponding block index is also fixed. Therefore, even in cases of sparsity and irregularity of point clouds, even if the transform block to be encoded does not include 8 transform coefficients, the block index corresponding to each transform coefficient in the transform block to be encoded can still be quickly determined, thus enabling rapid determination of the context index and the first probability model corresponding to the context index, thereby effectively improving encoding efficiency. Attached Figure Description

[0041] Figure 1 is a schematic diagram of the encoding and decoding system provided in an embodiment of this application;

[0042] Figure 2a is a flowchart of the encoding process performed by the encoder based on the AVS-PCC encoding framework;

[0043] Figure 2b is a flowchart of the encoding process performed by the encoder based on the MPEG G-PCC encoding framework;

[0044] Figure 3a is a flowchart of the decoding process performed by the decoder based on the AVS-PCC decoding framework;

[0045] Figure 3b is a flowchart of the decoding process performed by the decoder based on the MPEG G-PCC decoding framework;

[0046] Figure 4a is a flowchart of the attribute encoding process performed by the encoder based on the G-PCC encoding framework;

[0047] Figure 4b is a flowchart of attribute decoding performed by the encoder in the G-PCC-based encoding framework;

[0048] Figure 5 is a flowchart of a point cloud attribute encoding method provided in an embodiment of this application;

[0049] Figure 6a is a schematic diagram showing the distribution of a transform block and its transform coefficients applicable to an embodiment of this application;

[0050] Figure 6b is a flowchart of another point cloud attribute encoding method provided in an embodiment of this application;

[0051] Figure 7 is a flowchart of a point cloud attribute decoding method provided in an embodiment of this application;

[0052] Figure 8 is a structural diagram of a point cloud attribute encoding device provided in an embodiment of this application;

[0053] Figure 9 is a structural diagram of a point cloud attribute decoding device provided in an embodiment of this application;

[0054] Figure 10 is a structural diagram of an electronic device provided in an embodiment of this application;

[0055] Figure 11 is a structural diagram of a terminal provided in an embodiment of this application. Detailed Implementation

[0056] The technical solutions of the embodiments of this application will be clearly described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application are within the scope of protection of this application.

[0057] The terms "first," "second," etc., used in this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such terms can be used interchangeably where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of the same class, not limited in number; for example, the first object can be one or more. Furthermore, "or" in this application indicates at least one of the connected objects. For example, the scope of protection for "A or B" covers at least three scenarios: Scenario 1: including A but not B; Scenario 2: including B but not A; Scenario 3: including both A and B. In addition, the terms "A and / or B," "at least one of A and B," and "at least one of A or B" also cover at least the above three scenarios. The character " / " generally indicates that the preceding and following objects are in an "or" relationship.

[0058] Before introducing the technical solutions provided in the embodiments of this application, the meanings of some terms will be explained first.

[0059] Point cloud: A point cloud is a set of discrete points in space that are randomly distributed and represent the spatial structure and surface properties of a three-dimensional object or scene. Point clouds can be classified into different categories according to different classification criteria. For example, according to the method of acquiring the point cloud, it can be divided into dense point clouds and sparse point clouds; or according to the temporal type of the point cloud, it can be divided into static point clouds and dynamic point clouds.

[0060] Point cloud data: Point cloud data is composed of the geometric coordinates and attribute information of each point. Geometric coordinate information, also known as 3D position information, refers to the spatial coordinates (x, y, z) of a point in the point cloud. This can include the coordinate values ​​of the point along each coordinate axis of a 3D coordinate system, such as the coordinate value x along the X-axis, the coordinate value y along the Y-axis, and the coordinate value z along the Z-axis. The attribute information of a point in the point cloud can include at least one of the following: color information, material information, and laser reflection intensity information (also known as reflectivity). Typically, each point in the point cloud has the same number of attribute information. For example, each point in the point cloud can have both color information and laser reflection intensity information, or it can have color information, material information, and laser reflection intensity information.

[0061] Point cloud compression (PCC) refers to the process of encoding the geometric coordinates and attribute information of each point in a point cloud to obtain a compressed bitstream. Point cloud compression includes two main processes: geometric coordinate information encoding and attribute information encoding. Currently, point cloud compression frameworks that can compress point clouds include the Geometry Point Cloud Compression (G-PCC) or Video Point Cloud Compression (V-PCC) framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC framework provided by the Audio Video Standard (AVS).

[0062] Point cloud decoding: Point cloud decoding refers to decoding the compressed bitstream obtained from point cloud encoding to reconstruct the point cloud. More specifically, it refers to the process of reconstructing the geometric coordinates 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, for the geometric bitstream, entropy decoding is first performed to obtain the quantized information of each point in the point cloud, and then inverse quantization is performed to reconstruct the geometric coordinates of each point in the point cloud. 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, inverse quantization is performed on the quantized attribute residual information to obtain the reconstructed residual information, and inverse quantization is performed on the quantized transform coefficients to obtain the reconstructed transform coefficients. The reconstructed transform coefficients are then inversely transformed to obtain the reconstructed residual information. Based on 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 then matched one-to-one with the reconstructed geometric coordinate information in sequence to reconstruct the point cloud.

[0063] Figure 1 is a schematic diagram of the encoding / decoding system provided in an embodiment of this application. The technical solution of this application embodiment relates to encoding / decoding (CODEC) point cloud data (including encoding or decoding).

[0064] As shown in Figure 1, the encoding / decoding system includes a source device 100, which provides encoded point cloud data to be 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 the following: desktop computer, laptop computer, tablet computer, set-top box, mobile phone, wearable device (e.g., smartwatch or wearable camera), television, camera, display device, in-vehicle device, virtual reality (VR) device, augmented reality (AR) device, mixed reality (MR) device, digital media player, video game console, video conferencing equipment, video streaming equipment, broadcast receiver equipment, broadcast transmitter equipment, spacecraft, aircraft, robot, satellite, etc.

[0065] In the example of Figure 1, source device 100 includes a data source 101, a memory 102, an encoder 200, and an output interface 104. Destination device 110 includes an input interface 111, a decoder 300, a memory 113, and a display device 114. Source device 100 represents an example of an encoding device, while destination device 110 represents an example of a decoding device. In other examples, source device 100 and destination device 110 may not include some of the components shown in Figure 1, or they may include components other than those shown in Figure 1. For example, source device 100 may acquire point cloud data through an external capture device. Similarly, destination device 110 may interface with an external display device instead of including an integrated display device. Furthermore, memory 102 and memory 113 may be external memories.

[0066] Although Figure 1 illustrates the source device 100 and the destination device 110 as separate devices, in some examples, they may be integrated into a single device. In such embodiments, the same hardware or software, separate hardware or software, or any combination thereof may be used to implement the functionality corresponding to the source device 100 and the functionality corresponding to the destination device 110.

[0067] In some examples, source device 100 and destination device 110 can perform unidirectional or bidirectional data transmission. In the case of bidirectional data transmission, source device 100 and destination device 110 can operate in a substantially symmetrical manner, i.e., each of source device 100 and destination device 110 includes an encoder and a decoder.

[0068] Data source 101 represents the source of point cloud data (i.e., raw, unencoded point cloud data) and provides the point cloud data to encoder 200, which encodes the point cloud data. Source device 100 may include capture devices (e.g., camera devices, sensing devices, or scanning devices), archives containing previously captured point cloud data, or feed interfaces for receiving point cloud data from data content providers. Camera devices may include ordinary cameras, stereo cameras, and light field cameras; sensing devices may include laser devices, radar devices, etc.; and scanning devices may include 3D laser scanning devices, etc. Point cloud data can be obtained by capturing real-world visual scenes using capture devices. Alternatively, 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 may generate point cloud data based on virtual objects (e.g., virtual 3D objects and virtual 3D scenes obtained through 3D modeling).

[0069] Encoder 200 encodes captured, pre-captured, or computer-generated data. Encoder 200 can rearrange point cloud data from the received order (sometimes referred to as the "display order") according to the encoded order. Encoder 200 can generate a bitstream including the encoded point cloud data. Source device 100 can then output the encoded point cloud data to communication medium 120 via output interface 104 for reception or retrieval, for example, by input interface 111 of destination device 110.

[0070] The memory 102 of the source device 100 and the memory 113 of the destination device 110 represent general-purpose memory. In some examples, memory 102 may store raw data from data source 101, and memory 113 may store decoded point cloud data from decoder 300. Additionally or alternatively, memories 102 and 113 may respectively store software instructions executable by, for example, encoder 200 and decoder 300. Although memories 102 and 113 are shown separately from encoder 200 and decoder 300 in this example, it should be understood that encoder 200 and decoder 300 may also include internal memory for functionally similar or equivalent purposes. If encoder 200 and decoder 300 are deployed on the same hardware device, memories 102 and 113 may be the same memory. Furthermore, memories 102 and 113 may store, for example, encoded point cloud data output from encoder 200 and input to decoder 300. In some examples, portions of memories 102 and 113 may be allocated as one or more point cloud buffers, for example, to store raw, decoded, or encoded point cloud data.

[0071] In some examples, source device 100 can output encoded data from output interface 104 to memory 113. Similarly, destination device 110 can access encoded data from memory 113 via input interface 111. Memory 113 or memory 102 can include any of a variety of distributed or locally accessed data storage media, such as hard drives, Blu-ray discs, digital versatile discs (DVDs), compact disc read-only memory (CD-ROMs), flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded point cloud data.

[0072] Output interface 104 may include any type of medium or device capable of transmitting encoded point cloud data from source device 100 to destination device 110. For example, output interface 104 may include a transmitter or transceiver, such as an antenna, configured to transmit encoded point cloud data directly from source device 100 to destination device 110 in real time. The encoded point cloud data may be modulated according to the communication standards of a wireless communication protocol and transmitted to destination device 110.

[0073] Communication medium 120 may include transient media, such as wireless broadcasting or wired network transmission. For example, communication medium 120 may include radio frequency (RF) spectrum or one or more physical transmission lines (e.g., cables). 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). Communication medium 120 may also take the form of a storage medium (e.g., a non-transitory storage medium), such as a hard disk, flash drive, compact disk, digital point cloud disk, Blu-ray disc, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded point cloud data.

[0074] In some implementations, the communication medium 120 may include a router, switch, base station, or any other device that can be used to facilitate communication from source device 100 to destination device 110. For example, a server (not shown) may receive encoded point cloud data from source device 100 and provide it to destination device 110, for example, via network transmission. The server may include (e.g., a web server for a website), a server configured to provide file transfer protocol services (such as File Transfer Protocol (FTP) or 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 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), Dynamic Adaptive Streaming over HTTP (DASH), HTTP Live Streaming (HLS), or Real Time Streaming Protocol (RTSP).

[0075] Destination device 110 can access encoded point cloud data from a server, for example, via a wireless channel (e.g., WiFi connection) or a wired connection (e.g., Digital subscriber line (DSL), cable modem, etc.) for accessing encoded point cloud data stored on the server.

[0076] Output interface 104 and input interface 111 can 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 or IEEE 802.15 standard (e.g., ZigBee™ transmission mode), Bluetooth standard, or other physical components. In an example where output interface 104 and input interface 111 include wireless components, output interface 104 and input interface 111 can be configured to operate according to Wireless Fidelity (WIFI), Ethernet, cellular networks (such as 4G (4G)... th Generation 4G mobile communication networks, Long Term Evolution (LTE), Advanced LTE, 5G (5G) th Generation 5G mobile communication network, sixth generation (6G) th Data, such as encoded point cloud data, is transmitted using Generation 6G mobile communication networks.

[0077] The technology provided in this application can be applied to support one or more of the following application scenarios: machine-perceived point clouds, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, disaster relief robots, and other scenarios; human-perceived point clouds, which can be used in point cloud application scenarios such as digital cultural heritage, free-viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.

[0078] 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, image groups, images, slices, blocks, etc.), where 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 location of a physical object, the display device 114 may be replaced by a processor.

[0079] The encoder 200 and decoder 300 can be implemented as one or more of various processing circuits, which may include microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, or any combination thereof. When the technology is implemented wholly or partially in software, the device may store instructions for the software in a suitable 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 this application.

[0080] The basic principles of the encoder 200 and decoder 300 provided in this application embodiment are introduced below, taking the G-PCC and AVS-PCC codec frameworks as examples.

[0081] The encoding and decoding frameworks of G-PCC and AVS-PCC are largely the same. Figure 2a shows the encoding flowchart executed by the encoder based on the AVS-PCC encoding framework, and Figure 2b shows the encoding flowchart executed by the encoder based on the MPEG G-PCC encoding framework. The encoder mentioned above can be the encoder 200 shown in Figure 1. The above encoding frameworks can generally be 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 bitstream; in the attribute information encoding process, the attribute information of each point in the point cloud is encoded to obtain an attribute bitstream; the geometric bitstream and the attribute bitstream together constitute the compressed bitstream of the point cloud.

[0082] For the geometric information encoding process, the encoding flow executed by encoder 200 is as follows:

[0083] 1. Pre-processing: This can include coordinate transformation and voxelization. Through scaling and translation operations, pre-processing converts the point cloud data in 3D space into integer form and moves its smallest geometric position to the origin. In some examples, encoder 200 may not perform pre-processing.

[0084] 2. Geometric Coding: For the AVS-PCC coding framework, geometric coding includes two modes: octree-based geometric coding and prediction tree-based geometric coding. For the G-PCC coding framework, geometric coding includes three modes: octree-based geometric coding, trisoup-based geometric coding, and prediction tree-based prediction coding. Among them:

[0085] Octree-based geometric coding: An octree is a tree-like data structure that, in 3D spatial partitioning, uniformly divides a predefined bounding box. Each transform block (also called a node) has eight sub-transform blocks (also called child nodes). By using "1" and "0" to indicate whether each sub-transform block of the octree is occupied, occupancy code information is obtained as the bitstream of point cloud geometric information.

[0086] Geometric coding based on prediction trees: A prediction tree is generated using a prediction strategy. Starting from the root transform block of the prediction tree, each transform block is traversed, and the residual coordinate values ​​corresponding to each traversed transform block are encoded.

[0087] Geometric encoding based on triangulation: The point cloud is divided into blocks of a certain size, and the intersection points (called vertices) of the point cloud surface at the edges of the blocks are located. Geometric information is compressed by encoding whether there are intersection points on the edges of the blocks and the positions of the intersection points.

[0088] 3. Geometric Entropy Encoding: This method uses statistical compression encoding on the occupancy code information of the octree, the prediction residual information of the prediction tree, and the vertex information of the triangular representation, finally outputting a binary (0 or 1) compressed bitstream. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to represent the same signal. A commonly used statistical coding method is Content Adaptive Binary Arithmetic Coding (CABAC).

[0089] 4. Geometric Reconstruction: Decoding and reconstructing the geometric information after geometric encoding.

[0090] For the attribute information encoding process, the encoding flow executed by encoder 200 is as follows:

[0091] 1. Color Transformation: Apply transformations to change the color information of an attribute to a different domain. For example, color information can be transformed from the RGB color space to the YCbCr color space.

[0092] 2. Attribute Recoloring: In lossy encoding, after encoding the geometric coordinate information, the encoding end needs to decode and reconstruct the geometric information, that is, restore the geometric information of each point in the point cloud. Attribute information corresponding to one or more neighboring points in the original point cloud is used as the attribute information for the reconstructed point.

[0093] In some examples, encoder 200 may not perform color transformation or attribute recoloring.

[0094] 3. Attribute information processing: In AVS-PCC, attribute information processing can include three modes: prediction coding, transformation coding, and prediction & transformation coding. These three coding modes can be used under different conditions.

[0095] Predictive coding refers to determining the neighboring points of the point to be coded as prediction points among the already coded points based on information such as distance or spatial relationships. Based on set criteria, the predicted attribute information of the point to be coded is calculated according to the attribute information of the prediction points. The difference between the actual attribute information and the predicted attribute information of the point to be coded is calculated as attribute residual information. This attribute residual information is then quantized, transformed (optional), and entropy encoded.

[0096] Transform coding refers to using transformation methods such as Discrete Cosine Transform (DCT) and Haar Transform (Haar) to group and transform attribute information, quantize the transformation 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 then entropy-encode the quantized transformation coefficients and attribute residuals.

[0097] Predictive transform coding refers to using the attribute residual information obtained from prediction to perform transformation, and then quantizing and entropy coding the transform coefficients.

[0098] In MPEG G-PCC, attribute information processing can include three modes: Prediction Transform coding, Lifting Transform coding, and Region Adaptive Hierarchical Transform (RAHT) coding. These three coding modes can be used under different conditions.

[0099] Predictive transform coding refers to dividing the point cloud into multiple different levels of detail (LoD) based on distance-selected subsets of points, achieving a multi-quality, hierarchical point cloud representation from coarse to fine. Bottom-up prediction is possible between adjacent layers, where neighboring points in the coarse layer predict the attribute information of points introduced in the fine layer, obtaining the corresponding attribute residual information. The points at the lowest level are encoded as reference information.

[0100] Lift transform coding refers to introducing a weight update strategy for neighboring points on the basis of LoD neighboring layer prediction, and finally obtaining the predicted attribute information of each point and the corresponding attribute residual information.

[0101] Hierarchical region adaptive transform coding refers to the process of transforming attribute information into the transform domain, which is called the transform coefficient.

[0102] 4. Attribute Quantization: The fineness of quantization is usually determined by the quantization parameters. The transformation coefficients or attribute residuals obtained from attribute information processing are quantized, and the quantized results are entropy-coded. For example, in predictive transform coding and boost transform coding, entropy coding is performed on the quantized attribute residuals; in RAHT, entropy coding is performed on the quantized transform coefficients.

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

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

[0105] Figure 3a shows a decoding flowchart executed by the decoder in the AVS-PCC-based decoding framework, and Figure 3b shows a decoding flowchart executed by the decoder in the MPEG G-PCC-based decoding framework. The decoder can be the decoder 300 shown in Figure 1. After receiving the compressed bitstream (i.e., attribute bitstream and geometric bitstream) transmitted by the encoder 200, the decoder 300 decodes the geometric bitstream to reconstruct the geometric coordinate information of each point in the point cloud, and decodes the attribute bitstream to reconstruct the attribute information of each point in the point cloud.

[0106] The decoding process performed by decoder 300 is as follows:

[0107] 1. Entropy Decoding: Perform entropy decoding on the geometric bitstream and attribute bitstream respectively to obtain geometric syntax elements and attribute syntax elements.

[0108] 2. Geometric Decoding: For the AVS-PCC coding framework, geometric decoding includes two modes: octree-based geometric decoding and prediction tree-based geometric decoding. For the G-PCC coding framework, geometric decoding includes three modes: octree-based geometric decoding, trisoup-based geometric decoding, and prediction tree-based prediction decoding.

[0109] Octree-based geometric decoding: reconstructing the octree based on the geometric syntax elements obtained from parsing the geometric bitstream.

[0110] Geometric Decoding Based on Prediction Trees: Reconstructing the prediction tree based on the geometric syntax elements obtained from parsing the geometric bitstream.

[0111] Geometric Decoding Based on Triangle Representation: Reconstructing the triangular model based on the geometric syntax elements obtained from parsing the geometric bitstream.

[0112] 3. Geometric Reconstruction: Perform reconstruction to obtain the geometric coordinate information of the points in the point cloud.

[0113] 4. Inverse coordinate transformation: Perform an inverse transformation on the reconstructed geometric coordinate information to convert the reconstructed coordinates (positions) of points in the point cloud from the transformation domain back to the initial domain.

[0114] 5. Dequantization: Dequantizes attribute syntax elements.

[0115] 6. Attribute Information Processing: In AVS-PCC, attribute information processing determines the color information of points in the point cloud by predicting or predicting the transformation of the inverse-quantized prediction residual or prediction residual transformation coefficients, or by transforming the transformation coefficients of the inverse-quantized transformation.

[0116] In MPEG G-PCC, attribute information processing determines the color information of points in the point cloud by using RAHT to invert the attribute information, or by using LOD and inverse boosting to determine the color information of points in the point cloud.

[0117] 7. Inverse Color Transformation: Transforms color information from the YCbCr color space to the RGB color space. In some examples, the inverse color transformation operation may not be necessary.

[0118] In the Geometry-based Point Cloud Compression (G-PCC) encoder framework, the geometric and attribute information of the point cloud are encoded separately. As shown in Figures 4a and 4b, the attribute encoding and decoding of G-PCC can currently be divided into Region Adaptive Harm Transform (RAHT) based on upsampling prediction and lifting transform based on hierarchical structure partitioning.

[0119] The region adaptive transform based on upsampling prediction includes the following steps: First, a transform tree structure is constructed. Starting from the bottom layer, an octree structure is built from bottom to top. During the construction of the transform tree, corresponding Morton code information, attribute information, and weight information need to be generated for the merged nodes (also called transform blocks). Then, from top to bottom, upsampling prediction and Region Adaptive Hierarchical Transform (RAHT) are performed layer by layer starting from the root node. If the current node is the root node, upsampling prediction is not performed; instead, the RAHT transformation is directly applied to the node's attribute information, and then the resulting Direct Current (DC) and Alternating Current (AC) coefficients are quantized and entropy encoded. If the node is not the root node, the number of grandparent and parent nodes determines whether to perform prediction on the current node. If prediction is required, for the current node to be encoded, its child nodes are weighted and predicted by selecting the parent node of the current child node, the neighboring parent node coplanar and collinear with the current child node, and the neighboring child nodes coplanar and collinear with the current child node. Then, the predicted attribute value of the current child node is obtained by performing a RAHT transformation on both the predicted attribute value and the original attribute value. The resulting AC coefficient residuals are then quantized and entropy-encoded. If prediction is not required, the original attribute value of the current node to be encoded is directly subjected to a RAHT transformation, and the resulting AC coefficients are quantized and entropy-encoded to obtain the final attribute bitstream.

[0120] The lifting transform based on hierarchical structure partitioning includes the following steps: First, the point cloud to be encoded is hierarchically partitioned using Level of Detail (LoD) partitioning to establish its hierarchical structure. In this process, the lowest-level points are encoded and decoded first, allowing the prediction of higher-level points using these points and reconstructed points at the same level, thus achieving progressive encoding and decoding. Then, using the lowest-level and same-level points as reference points, the point to be encoded searches within these reference points, selecting the K nearest reference points as prediction reference points. Linear interpolation prediction is then performed using the reconstructed attribute values ​​of these K nearest neighbors, with the weight being the reciprocal of the Euclidean distance between the nearest neighbor and the point to be encoded. Finally, the lifting transform is performed, which includes segmentation, prediction, and update. The segmentation stage spatially divides the input point cloud data into high-level and low-level point clouds. 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, obtaining the prediction residual. During the segmentation and prediction process, since the prediction strategy in the LoD partitioning makes the points in the lower LoD layers 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 bitstream of attribute information.

[0121] The point cloud attribute encoding method and point cloud attribute decoding method provided in the embodiments of this application are described below with reference to the accompanying drawings. The point cloud attribute encoding method provided in the embodiments of this application can be executed by an encoding end, such as the encoder 200 shown in Figure 1. The point cloud attribute decoding method provided in the embodiments of this application can be executed by a decoding end, such as the decoder 300 shown in Figure 1. The encoding end and decoding end can be implemented by software, hardware, or a combination thereof. When implemented by hardware, the encoding end can be referred to as an encoding end device or a video encoding device, and the decoding end can be referred to as a decoding end device or a video decoding device.

[0122] Please refer to Figure 5, which is a flowchart of a point cloud attribute encoding method provided in an embodiment of this application. As shown in Figure 5, the method includes the following steps:

[0123] Step 501: The encoding end obtains the transformation block of the point cloud to be encoded.

[0124] Understandably, the point cloud to be encoded is an unencoded point cloud, or it can be understood as a point cloud that has not yet been encoded. For example, some transform blocks in the point cloud to be encoded have been encoded, while others have not. After acquiring the point cloud to be encoded, the encoding end acquires the transform blocks to be encoded within it, which are the unencoded transform blocks. For example, the encoding end can acquire any one of the unencoded transform blocks in the point cloud to be encoded as the transform block to be encoded.

[0125] Optionally, the encoding end acquires the transform block to be encoded in the point cloud to be encoded, including:

[0126] The encoding end reorders the point cloud to be encoded;

[0127] The encoding end constructs a transformation tree structure for the reordered point cloud to be encoded based on the geometric distance between each transformation block in the reordered point cloud to be encoded.

[0128] The encoding end determines the transform block to be encoded based on the transform tree structure, and the transform block to be encoded is the unencoded transform block in the transform tree structure.

[0129] In this embodiment of the application, after the encoding end obtains the point cloud to be encoded, it reorders the point cloud to be encoded; then, based on the geometric distance between each transform block in the reordered point cloud to be encoded, it constructs a multi-layer transform number structure for the reordered point cloud to be encoded.

[0130] For example, the encoder constructs a transformation tree structure (e.g., an octree structure) from the bottom up, based on the geometric distances between the transform blocks in the reordered point cloud to be encoded. During the construction of the transformation tree, corresponding Morton code information, attribute information, and weight information need to be generated for the merged transform blocks. Then, the encoder determines the transform blocks to be encoded according to the transformation tree structure. For example, it can determine the transform blocks to be encoded sequentially from the root transform block in a top-down manner. That is, the encoder can encode the transform blocks in the transformation tree structure sequentially from the root transform block in a top-down manner, for example, by performing upsampling prediction and region adaptive hierarchical transformation.

[0131] In this embodiment, the encoding end reorders the point cloud to be encoded, constructs a transformation tree structure for the reordered point cloud based on the geometric distance between each transform block in the reordered point cloud, and then determines the transform block to be encoded according to the transformation tree structure, thereby enabling the encoding end to achieve ordered encoding of the transform blocks in the point cloud to be encoded.

[0132] Step 502: The encoding end predicts and transforms the transform block to be encoded to obtain the transform coefficients of the transform block to be encoded.

[0133] For example, the encoding end performs upsampling prediction and region adaptive transformation on the transform block to be encoded to obtain the transform coefficients of the transform block to be encoded.

[0134] It should be noted that if the transform block to be encoded is the transform block obtained after transforming the root node in the transform tree structure, the encoder does not perform upsampling prediction. If the transform block to be encoded is not the transform block obtained after transforming the root node, the encoder determines whether to predict the current transform block based on the number of grandparent and parent nodes of the transform block to be encoded. If prediction is required, for the current transform block to be encoded, the parent node of the current sub-transform block, the neighbor parent node coplanar and collinear with the current sub-transform block, and the neighbor child node coplanar and collinear with the current sub-transform block are selected for weighted prediction to obtain the attribute prediction value of the current sub-transform block. Then, the attribute prediction value and the original attribute value of the current transform block to be encoded are subjected to RAHT transformation respectively. If prediction is not required, the original attribute value of the current transform block to be encoded is directly subjected to RAHT transformation.

[0135] Step 503: The encoding end quantizes the transform coefficients of the transform block to be encoded and determines the context index based on the context information of the quantized transform coefficients.

[0136] In this embodiment, after predicting and transforming the transform block to be encoded to obtain its transform coefficients, the encoding end quantizes these transform coefficients to obtain quantized transform coefficients. The specific process of quantizing the transform coefficients of the transform block to be encoded by the encoding end can be found in related technologies, and will not be elaborated upon in this embodiment.

[0137] The encoding end obtains the context information of the quantized transform coefficients, wherein the context information includes the block index corresponding to the quantized transform coefficients in the transform block to be encoded. It should be noted that the block index corresponding to the quantized transform coefficients in the transform block to be encoded can be understood as the block index corresponding to the actual position of the quantized transform coefficients in the transform block to be encoded.

[0138] For example, please refer to Figure 6a. Figure 6a is a schematic diagram showing the distribution of transformation coefficients when a 2×2×2 node in the point cloud is taken as a transformation block. The transformation block includes 8 transformation coefficients, each with a fixed position in the block. For example, the first position in the transformation block is transformation coefficient LLL, and the block index corresponding to this transformation coefficient is 0; the second position is transformation coefficient LHL, and the block index corresponding to this transformation coefficient is 1; the third position is transformation coefficient HLL, and the block index corresponding to this transformation coefficient is 2; the fourth position is transformation coefficient HHL, and the block index corresponding to this transformation coefficient is 3; the fifth position is transformation coefficient LLH, and the block index corresponding to this transformation coefficient is 4; the sixth position is transformation coefficient LHH, and the block index corresponding to this transformation coefficient is 5; the seventh position is transformation coefficient HLH, and the block index corresponding to this transformation coefficient is 6; and the eighth position is transformation coefficient HHH, and the block index corresponding to this transformation coefficient is 7. Therefore, after obtaining the quantized transform coefficients of the transform block to be encoded, the encoder can determine the block index information corresponding to the quantized transform coefficients in the transform block. For example, if the quantized transform coefficient is HHL, it can be determined that the quantized transform coefficient is located at the 4th position in the transform block to be encoded, and its corresponding block index is 3. Even if there are no transform coefficients before the 4th position in the transform block to be encoded, the block index of the quantized transform coefficient HHL can still be determined. In this way, even if the transform coefficients of the transform block to be encoded do not reach 8, the block index corresponding to each transform coefficient in the transform block to be encoded can still be determined.

[0139] In related technologies, context information is determined based on the position of the current coefficient in the coefficient storage array (e.g., the Coeff array). However, due to the sparsity and irregularity of point clouds, not all AC coefficients exist. Therefore, the meaning of the coefficient corresponding to each index may not be the same after each entry into the Coeff array. For example, the current transform block index 3 may contain an HHL coefficient, but in the next transform block, if the HHL coefficient or a coefficient before the LLH coefficient is not present, the coefficient at index 3 may be an LLH coefficient. This requires that each time a transform block is encoded, the actual transform coefficients in the transform block must be entered into the Coeff array, and then the position of each transform coefficient in the Coeff array must be determined, resulting in low encoding efficiency.

[0140] The solution provided in this application determines the block index based on the block index of the quantized transform coefficients within the transform block to be encoded. Since the position of each transform coefficient within the transform block is fixed, its corresponding block index is also fixed. For example, assuming the transform block to be encoded contains only three transform coefficients: LHL, HHL, and LLH, the block indices corresponding to these three transform coefficients in the transform block to be encoded can be determined as 2, 4, and 5, respectively. Thus, even if the transform block to be encoded does not contain all eight transform coefficients, given the sparsity and irregularity of the point cloud, the block index corresponding to each transform coefficient within the transform block can still be quickly determined.

[0141] It should be noted that the position of the transform coefficients in the transform block to be encoded and their corresponding block indices in this embodiment are the same before and after quantization, and will not change due to quantization. In this embodiment, the block index corresponding to the quantized transform coefficients in the transform block to be encoded can also be understood as the block index corresponding to the transform coefficients in the transform block to be encoded, and will not be repeated hereafter.

[0142] In this embodiment, the encoder determines the context index based on the context information of the quantized transform coefficients. The context information includes the block index corresponding to the quantized transform coefficient in the transform block to be encoded. The encoder can determine the context index based on the block index corresponding to the quantized transform coefficient in the transform block to be encoded. For example, each transform coefficient in the transform block to be encoded corresponds to a context index, resulting in eight context indices. The corresponding context index can be determined based on the block index corresponding to the quantized transform coefficient in the transform block to be encoded, thus enabling rapid determination of the context index.

[0143] Step 504: The encoding end determines a first probability model for entropy coding based on the context index.

[0144] In this embodiment of the application, after the encoding end determines the context index based on the block index corresponding to the quantized transform coefficients in the transform block to be encoded, it determines the first probability model for entropy coding based on the context index.

[0145] Optionally, the context index and the first probability model have a one-to-one correspondence. This can be understood as one context index corresponding to one first probability model, which can quickly determine the first probability model based on the context index, thus helping to improve coding efficiency.

[0146] Optionally, in some implementations, multiple context indices may correspond to a first probability model. For example, the first probability model may be determined based on the value of the context index; for instance, a context index value greater than or equal to a preset value corresponds to one first probability model, and a context index value less than the preset value corresponds to another first probability model. Of course, determining the first probability model based on the value of the context index can be done in other ways, and this embodiment does not impose specific limitations on it.

[0147] Step 505: The encoding end performs entropy encoding on the first identifier based on the first probability model.

[0148] The first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients. For example, the distribution characteristics of the components of the quantized transform coefficients can refer to whether all the values ​​of the components are 0, and this is characterized by the first identifier. For instance, if all the values ​​of the components of the quantized transform coefficients are 0, the first identifier is encoded as a first value using the first probability model; if not all the values ​​of the components of the quantized transform coefficients are 0, the first identifier is encoded as a second value using the first probability model. This achieves entropy encoding of the first identifier by the first probability model.

[0149] It should be noted that in some embodiments, the encoding end performs entropy encoding on the first identifier based on the first probability model, which completes the encoding of the transform block to be encoded; in other embodiments, after the encoding end performs entropy encoding on the first identifier based on the first probability model, it also needs to perform entropy encoding on the components of the transform coefficients to complete the encoding of the transform block to be encoded. For details, please refer to the description of the following embodiments, which will not be elaborated here.

[0150] In this embodiment, the encoder predicts and transforms the transform block to be encoded, obtains the transform coefficients of the transform block, quantizes the transform coefficients, determines the context index based on the context information of the quantized transform coefficients, and further determines the corresponding first probability model based on the context index. Then, entropy encoding is performed on the first identifier based on the first probability model. The first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients, and the context information used to determine the context index includes the block index corresponding to the quantized transform coefficient in the transform block to be encoded. Therefore, the encoder can determine the context index based on the block index corresponding to the quantized transform coefficient. Since the position of the transform coefficient in the transform block to be encoded is fixed, its corresponding block index is also fixed. Therefore, even in cases of sparsity and irregularity of point clouds, even if the transform block to be encoded does not include 8 transform coefficients, the block index corresponding to each transform coefficient in the transform block to be encoded can still be quickly determined, thus enabling rapid determination of the context index and the first probability model corresponding to the context index, thereby effectively improving encoding efficiency.

[0151] Optionally, the block indices corresponding to the quantized transform coefficients in the transform block to be encoded are categorized based on first information, which includes at least one of the following:

[0152] The frequency information corresponding to the block index of the quantized transform coefficients;

[0153] The block index of the quantized transform coefficients;

[0154] The size of the block index of the quantized transform coefficients;

[0155] The type of the quantized transform coefficients.

[0156] For example, the block indices corresponding to the block indices of the quantized transform coefficients in the transform block to be encoded can be classified according to the frequency information corresponding to the block indices of the quantized transform coefficients. For example, please refer to Table 1 below:

[0157] Table 1

[0158] As shown in Table 1 above, based on the frequency information corresponding to the block index, block indices 0 and 4 can be grouped into one category, block index 2 into another, block index 1 into a third, and block indices 3, 5, 6, and 7 into a fourth, thus classifying the block indices into a total of four categories. Of course, the frequency information corresponding to the block indexes can also be other possible cases, and the classification of the block indexes can also be other cases; no specific limitations are made here.

[0159] Alternatively, the block indices corresponding to the quantized transform coefficients in the transform block to be encoded can be categorized based on their block indices. For example, if a transform block contains 8 transform coefficients, and each transform coefficient has a corresponding block index in the transform block, i.e., there are 8 block indices, these 8 block indices can be categorized into 8 classes.

[0160] Alternatively, the block indices of the quantized transform coefficients within the transform block to be encoded can be categorized based on the size of their block indices. For example, as described above, the block indices of the eight transform coefficients in the transform block are 0, 1, 2, 3, 4, 5, 6, and 7. Block indices greater than or equal to 4 can be grouped into one category ({4, 5, 6, 7}), and each block index less than 4 can be grouped into a separate category ({0}, {1}, {2}, and {3}). Thus, the block indices of the quantized transform coefficients within the transform block to be encoded can be divided into five categories based on their block index size. Of course, other categorization methods based on block index size are also possible, such as grouping block indices greater than or equal to 4 into one category and those less than 4 into another, etc., which will not be listed in detail here.

[0161] Alternatively, the block indices corresponding to the quantized transform coefficients in the transform block to be encoded can be categorized according to the type of the quantized transform coefficients. For example, since only the DC and AC coefficients of the root transform block are encoded in the entire RAHT encoding, and only the AC coefficients of the other transform blocks are encoded, while the DC coefficients are encoded only once, the DC coefficient at index 0 and the AC coefficient at index 1 can be grouped into one category, and the rest can be categorized separately. This would result in the block indices corresponding to the quantized transform coefficients in the transform block to be encoded being divided into 7 categories.

[0162] It should be noted that the classification method of the block index corresponding to the quantized transform coefficient in the transform block to be encoded may also include other possible forms, which will not be specifically listed in this application.

[0163] In this embodiment of the application, the block index corresponding to the quantized transform coefficient in the transform block to be encoded can be classified based on the first information mentioned above. This makes the classification method of the position of the quantized transform coefficient in the transform block to be encoded more flexible, and thus the categories of the context index are richer when determining the context index based on the block index corresponding to the quantized transform coefficient in the transform block to be encoded.

[0164] Optionally, the context information further includes at least one of the following:

[0165] First quantity;

[0166] The ratio of the first quantity to the second quantity;

[0167] Information used to characterize whether there are non-zero transform coefficients in the encoded transform coefficients of the transform block to be encoded, and the state of the non-zero transform coefficients;

[0168] Wherein, the first quantity is the sum of the number of non-zero transform coefficients encoded in the transform block to be encoded and the number of non-zero transform coefficients encoded in the neighboring transform blocks of the transform block to be encoded, and the second quantity is the sum of the number of transform coefficients in the transform block to be encoded and the number of transform coefficients in the neighboring transform blocks of the transform block to be encoded.

[0169] For example, the context information also includes a first quantity, which is the sum of the number of non-zero transform coefficients encoded in the transform block to be encoded and the number of non-zero transform coefficients encoded in the neighboring transform blocks of the transform block to be encoded. For example, the sum of the number of non-zero transform coefficients encoded in the transform block to be encoded and the number of non-zero transform coefficients encoded in the neighboring transform blocks of the transform block to be encoded (represented by numCoeffNot0) can be divided into four categories: numCoeffNot0 = 0, 0 < numCoeffNot0 ≤ 1, 1 < numCoeffNot0 ≤ 3, and numCoeffNot0 > 3.

[0170] Optionally, the context information may further include the ratio of a first quantity (represented by numCoeffNot0) to a second quantity (represented by numCoeffTotal). For example, the ratio of the first quantity to the second quantity (represented by numCoeffNot0 / numCoeffTotal) can be divided into three categories: (numCoeffNot0 / numCoeffTotal) < 0.25, 0.25 < (numCoeffNot0 / numCoeffTotal) ≤ 0.5, and (numCoeffNot0 / numCoeffTotal) > 0.5.

[0171] Optionally, the context information may further include information characterizing whether there are non-zero transform coefficients among the encoded transform coefficients of the transform block to be encoded, and the state of the non-zero transform coefficients. For example, the information characterizing whether there are non-zero transform coefficients among the encoded transform coefficients of the transform block to be encoded, and the state of the non-zero transform coefficients, can be divided into three categories: no non-zero transform coefficients, non-zero transform coefficients exist with a maximum value of 1, and non-zero transform coefficients exist with a maximum value greater than 1.

[0172] In this embodiment of the application, the context information includes information about the position of the quantized transform coefficients in the transform block to be encoded, as well as at least one of the following: the first quantity, the ratio of the first quantity to the second quantity, and information used to characterize whether there are non-zero transform coefficients among the encoded transform coefficients of the transform block to be encoded and the state of the non-zero transform coefficients. Thus, the encoding end can determine the context index more flexibly and diversely based on the context information.

[0173] For example, the context information includes the block index corresponding to the quantized transform coefficient in the transform block to be encoded, the first quantity, the ratio of the first quantity to the second quantity, and information used to characterize whether there are non-zero transform coefficients among the encoded transform coefficients of the transform block to be encoded, and the state of the non-zero transform coefficients. Specifically, the first quantity can be divided into 4 categories as shown in the example above; the ratio of the first quantity to the second quantity can be divided into 3 categories as shown in the example above; the information used to characterize whether there are non-zero transform coefficients among the encoded transform coefficients of the transform block to be encoded, and the state of the non-zero transform coefficients, can be divided into 3 categories as shown in the example above; and the block index corresponding to the quantized transform coefficient in the transform block to be encoded can be divided into 8 categories based on the block index of the quantized transform coefficient. Therefore, a total of 4 × 3 × 3 × 8 = 288 context information items can be obtained. Each context information item corresponds to a context index, and each context index corresponds to a first probability model, thus determining 288 first probability models. This enriches the types of first probability models used for entropy coding.

[0174] It should be noted that the classification method of the block index corresponding to the quantized transform coefficient in the transform block to be encoded can also be in other forms. For example, it can be classified into 5 categories according to the size of the block index of the quantized transform coefficient, or into 2 categories according to the type of the quantized transform coefficient, or into 4 categories according to the frequency information corresponding to the block index of the quantized transform coefficient, etc. In this way, the number of context indexes and the number of first probability models used for entropy coding will also be different, thereby effectively enriching the number of first probability models.

[0175] Optionally, the encoding end performs entropy encoding on the first identifier based on the first probability model, including:

[0176] The encoding end obtains the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded, wherein the target transform coefficients are any set of transform coefficients of the transform block to be encoded.

[0177] The encoding end determines whether the values ​​of all components of the target transform coefficient are all the first preset values ​​based on the distribution characteristics of the components of the target transform coefficient, and uses the first identifier to characterize the determination result;

[0178] The encoding end performs entropy encoding on the first identifier based on the first probability model.

[0179] For example, after obtaining the quantized transform coefficients of the transform block to be encoded, the encoder can traverse each group of quantized transform coefficients in the transform block in a certain order. For example, this order can be the transform block index order of {0,1,2,3,4,5,6,7} or the transform block index order of {0,4,2,1,6,5,3,7}. This application does not specifically limit this. The target transform coefficient can be understood as the transform coefficient currently traversed by the encoder. The encoder determines whether the values ​​of all components of the target transform coefficient are all first preset values ​​(e.g., 0) based on the distribution characteristics of the components of the target transform coefficient, and represents the determination result by a first identifier (e.g., flagZero). For example, if the values ​​of all components of the target transform coefficient are 0, the first identifier can be a first sub-identifier; if the values ​​of all components of the target transform coefficient are not all 0, the first identifier is a second sub-identifier, and the first sub-identifier is different from the second sub-identifier. Further, the encoder performs entropy encoding on the first identifier using a first probability model determined based on the context index.

[0180] In this embodiment of the application, the encoding end determines whether all components of the target transform coefficient are at a first preset value, and uses a first identifier to characterize the determination result. The encoding end performs entropy encoding on the first identifier, which helps the decoding end to quickly obtain the distribution characteristics of the components of the target transform coefficient through the first identifier.

[0181] Optionally, the encoding end performs entropy encoding on the first identifier based on the first probability model, including at least one of the following:

[0182] When all components of the target transform coefficient have values ​​of a first preset value, the encoding end encodes the first identifier as a first value based on the first probability model to encode the transform block to be encoded.

[0183] When the values ​​of all components of the target transform coefficient are not all of the first preset value, the encoding end encodes the first identifier into a second value based on the first probability model, and performs entropy encoding on all components of the target transform coefficient to achieve the encoding of the transform block to be encoded.

[0184] For example, taking the first preset value as 0, if all components of the target transform coefficient are 0, the encoder encodes the first identifier as a first value (e.g., 1) based on the first probability model, and ends the encoding of the target transform coefficient. The encoder continues to traverse the next set of transform coefficients of the transform block to be encoded, and similarly determines whether all components of the next set of transform coefficients are 0 based on the above method, and uses the first identifier to represent the determination result and encode the first identifier, until all coefficients of the transform block to be encoded have been traversed. If all components of the target transform coefficient are not 0, the encoder encodes the first identifier as a second value (e.g., 0) based on the first probability model, and performs entropy encoding on all components of the target transform coefficient, thereby realizing the encoding of the transform block to be encoded.

[0185] Specifically, entropy encoding is performed on all components of the target transform coefficients. For example, if the transform block to be encoded is a color attribute, then each set of transform coefficients in the transform block to be encoded has three components (Y, C, b, Cr), and the target transform coefficient also has three components; therefore, entropy encoding is performed on these three components. If the transform block to be encoded is a reflectivity attribute, then each set of transform coefficients in the transform block to be encoded has only one component, and the target transform coefficient also has only one component; therefore, entropy encoding is performed on this component.

[0186] In this embodiment of the application, the encoding end can determine whether the values ​​of all components of the target transform coefficient are all the first preset values, and encode the first identifier as the first value or the second value according to the determination result, thereby realizing the fast encoding of the target transform coefficient and helping to improve the encoding efficiency.

[0187] Optionally, before the encoding end obtains the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded, the method further includes:

[0188] The encoding end obtains the value of each group of quantized transform coefficients of the transform block to be encoded;

[0189] The encoding end determines whether each group of quantized transform coefficients of the transform block to be encoded is a second preset value, and uses a second identifier to characterize the judgment result.

[0190] The encoding end performs entropy encoding on the second identifier, and when not all of the quantized transform coefficients of the transform block to be encoded are of the second preset value, it obtains the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded.

[0191] For example, after the encoder performs prediction, transformation, and quantization on the transform block to be encoded to obtain the quantized transform coefficients of the transform block to be encoded, the encoder determines whether each group of quantized transform coefficients of the transform block to be encoded is a second preset value (e.g., 0), and uses a second identifier (e.g., skipBlock) to characterize the determination result, and performs entropy encoding on the second identifier. If each group of quantized transform coefficients of the transform block to be encoded is not a second preset value, the encoder obtains the distribution characteristics of the components of the target transform coefficients of the transform block to be encoded, and further determines whether all components of the target transform coefficients are a first preset value.

[0192] In this embodiment of the application, the encoding end first determines whether each group of quantized transform coefficients of the transform block to be encoded is a second preset value. If not, it iterates through each group of quantized transform coefficients of the transform block to be encoded and further determines whether all components of the quantized transform coefficients are a first preset value.

[0193] Optionally, the encoding end performs entropy encoding on the second identifier, including at least one of the following:

[0194] When each set of quantized transform coefficients of the transform block to be encoded is a second preset value, the encoding end encodes the second identifier as a third value to achieve the encoding of the transform block to be encoded.

[0195] If not all of the quantized transform coefficients of the transform block to be encoded are the second preset value, the encoding end encodes the second identifier as the fourth value.

[0196] For example, taking the second preset value as 0, if each group of quantized transform coefficients of the transform block to be encoded is 0, the encoder encodes the second identifier as a third value (e.g., 1) and ends the encoding of the current transform block to be encoded; if each group of quantized transform coefficients of the transform block to be encoded is not all 0, the encoder encodes the second identifier as a fourth value (e.g., 0), and iterates through each group of quantized transform coefficients of the transform block to be encoded, further determining whether all components of the quantized transform coefficients are the first preset value. In this way, fast encoding of the transform block to be encoded can be achieved, which helps improve encoding efficiency.

[0197] Please refer to Figure 6b, which is a flowchart of another point cloud attribute encoding method provided in an embodiment of this application. As shown in Figure 6b, the method includes the following steps:

[0198] The encoding end traverses each node to be encoded (which can also be understood as a transformation block to be encoded) in the point cloud to be encoded;

[0199] The encoder determines whether all transform coefficients in the current node to be encoded are all 0, using skipBlock (i.e., the second identifier mentioned above). If all transform coefficients in the current node to be encoded are 0, then a 1 is encoded in skipBlock, and the encoding of the current node ends. If not all transform coefficients in the current node to be encoded are 0, then a 0 is encoded in skipBlock, and the following steps continue:

[0200] The encoding end iterates through each set of coefficients in the current node to be encoded. If it is a color attribute, each set of coefficients has three components YCbCr. If it is a reflectance attribute, each set of coefficients has only one component. It determines whether all components in the current coefficient are all 0, using flagZero (i.e., the first identifier mentioned above). If all components in the current coefficient are all 0, then flagZero is encoded with a 1 based on the first probability model, and the encoding of the current node to be encoded ends. If all components in the current coefficient are not all 0, then flagZero is encoded with a 0 based on the first probability model, and entropy encoding is performed on all components in the current coefficient (if it is a color attribute, three components need to be encoded; if it is a reflectance attribute, only one component needs to be encoded). The determination of the first probability model can be referred to the description in the method embodiment shown in Figure 5 above, and will not be repeated in this embodiment.

[0201] Once all coefficients of the current node to be encoded have been encoded, the encoding of the current node ends, and the encoding of the next node begins.

[0202] This application embodiment also provides a point cloud attribute decoding method, as shown in Figure 7. The method includes the following steps:

[0203] Step 701: The decoding end obtains the transform block to be decoded from the point cloud to be decoded.

[0204] Optionally, the decoding end acquires the transform block to be decoded in the point cloud to be decoded, including:

[0205] The decoding end reorders the point cloud to be decoded;

[0206] The decoding end constructs a transformation tree structure for the reordered point cloud to be decoded based on the geometric distance between each transformation block in the reordered point cloud to be decoded.

[0207] The decoding end determines the transform block to be decoded according to the transform tree structure, and the transform block to be decoded is the undecoded transform block in the transform tree structure.

[0208] In this embodiment, the decoding end reorders the point cloud to be decoded, constructs a transformation tree structure for the reordered point cloud to be decoded based on the geometric distance between each transform block in the reordered point cloud to be decoded, and then determines the transform block to be decoded according to the transformation tree structure, thereby enabling the decoding end to achieve ordered encoding of the transform blocks in the point cloud to be decoded.

[0209] Step 702: The decoding end performs entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded.

[0210] For example, the decoding end performs entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded.

[0211] Step 703: The decoding end determines the context index based on the context information of the transform coefficients, wherein the context information includes the block index corresponding to the transform coefficients in the transform block to be decoded.

[0212] The scheme provided in this application determines the block index of each transform coefficient based on its corresponding block index within the transform block to be decoded. Since the position of each transform coefficient within the transform block is fixed, its corresponding block index is also fixed. For example, referring to Figure 6a, assuming the transform block to be decoded contains only three transform coefficients: LHL, HHL, and LLH, the block indices corresponding to these three transform coefficients in the transform block to be decoded can be determined as 2, 4, and 5, respectively. Thus, even if the transform block to be decoded does not contain all eight transform coefficients, given the sparsity and irregularity of the point cloud, the block index corresponding to each transform coefficient within the transform block can still be quickly determined.

[0213] In this embodiment, the decoding end determines the context index based on the context information of the transform coefficients. The context information includes the block index corresponding to each transform coefficient in the transform block to be decoded. The decoding end can determine the context index based on the block index corresponding to each transform coefficient in the transform block to be decoded. For example, each transform coefficient in the transform block to be decoded corresponds to a context index, resulting in eight context indices. The corresponding context index can be determined based on the block index of the transform coefficient in the transform block to be decoded, thus enabling rapid determination of the context index and, based on the context index, determining the probability model, thereby effectively improving decoding efficiency.

[0214] Step 704: The decoding end determines a second probability model for entropy decoding based on the context index.

[0215] In this embodiment of the application, after the decoding end determines the context index based on the block index corresponding to the transform coefficient in the transform block to be decoded, it determines the second probability model for entropy decoding based on the context index.

[0216] Optionally, the context index and the second probability model have a one-to-one correspondence. This can be understood as one context index corresponding to one second probability model, which can quickly determine the second probability model based on the context index, thus helping to improve decoding efficiency.

[0217] Step 705: The decoding end performs entropy decoding on the third identifier based on the second probability model. The third identifier is used to characterize the distribution characteristics of the components of the transform coefficient.

[0218] The third identifier is used to characterize the distribution characteristics of the components of the transform coefficients. For example, the distribution characteristics of the components of the transform coefficients can refer to whether all the values ​​of the components of the transform coefficients are 0, and this is characterized by the third identifier. For instance, if all the values ​​of the components of the transform coefficients are 0, the third identifier is encoded as a first value using the second probability model; if not all the values ​​of the components of the transform coefficients are 0, the third identifier is encoded as a second value using the second probability model. This achieves entropy decoding of the third identifier by the second probability model.

[0219] In this embodiment, the decoding end performs entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block. Then, it determines the context index based on the context information of the transform coefficients and further determines the corresponding second probability model based on the context index. Next, it performs entropy encoding on a third identifier based on the second probability model. The third identifier is used to characterize the distribution characteristics of the transform coefficient components. The context information used to determine the context index includes the block index corresponding to the transform coefficient in the transform block to be decoded. Therefore, the decoding end can determine the context index based on the block index corresponding to the transform coefficient. Since the position of the transform coefficient in the transform block to be decoded is fixed, its corresponding block index is also fixed. Therefore, even in cases of sparsity and irregularity in point clouds, even if the transform block to be decoded does not include 8 transform coefficients, it can still quickly determine the block index corresponding to each transform coefficient in the transform block to be decoded, thereby quickly determining the context index and the first probability model corresponding to the context index, effectively improving decoding efficiency.

[0220] Optionally, the block index corresponding to the transform coefficient in the transform block to be decoded is categorized based on second information, which includes at least one of the following:

[0221] The frequency information corresponding to the block index of the transform coefficient;

[0222] The block index of the transformation coefficients;

[0223] The size of the block index of the transform coefficients;

[0224] The type of the transformation coefficients.

[0225] Optionally, the context information further includes at least one of the following:

[0226] Third quantity;

[0227] The ratio of the third quantity to the fourth quantity;

[0228] Information used to characterize whether there are non-zero transform coefficients among the decoded transform coefficients of the transform block to be decoded, and the state of the non-zero transform coefficients;

[0229] The third quantity is the sum of the number of decoded non-zero transform coefficients in the transform block to be decoded and the number of decoded non-zero transform coefficients in the neighboring transform blocks of the transform block to be decoded; the fourth quantity is the sum of the number of transform coefficients in the transform block to be decoded and the number of transform coefficients in the neighboring transform blocks of the transform block to be decoded.

[0230] It should be noted that the method of classifying the block index corresponding to the transform coefficient in the transform block to be decoded based on the second information can refer to the specific description of classifying the block index corresponding to the quantized transform coefficient in the transform block to be encoded based on the first information in the aforementioned encoding end method embodiment, and will not be repeated in this embodiment.

[0231] The specific content of the context information can also be found in the detailed description in the aforementioned encoding end method embodiments.

[0232] Optionally, the decoding end performs entropy decoding on the third identifier based on the second probability model, including:

[0233] The decoding end obtains the distribution characteristics of the components of the target transform coefficients of the transform block to be decoded, wherein the target transform coefficients are any set of transform coefficients of the transform block to be decoded;

[0234] The decoding end determines whether the values ​​of all components of the target transform coefficient are all the first preset values ​​based on the distribution characteristics of the components of the target transform coefficient, and uses the third identifier to characterize the determination result;

[0235] The decoding end performs entropy decoding on the third identifier based on the second probability model.

[0236] For example, after obtaining the transform coefficients of the transform block to be encoded, the decoding end can traverse each group of transform coefficients in the transform block in a certain order. For example, this order can be the transform block index order of {0,1,2,3,4,5,6,7} or the transform block index order of {0,4,2,1,6,5,3,7}. This application does not specifically limit this. The target transform coefficient can be understood as the transform coefficient currently traversed by the decoding end. The decoding end determines whether the values ​​of all components of the target transform coefficient are all first preset values ​​(e.g., 0) based on the distribution characteristics of the components of the target transform coefficient, and uses a third identifier (e.g., flagZero) to characterize the determination result. For example, if the values ​​of all components of the target transform coefficient are 0, the third identifier can be a third sub-identifier; if the values ​​of all components of the target transform coefficient are not all 0, the third identifier is a fourth sub-identifier, and the third sub-identifier is different from the fourth sub-identifier. Further, the decoding end performs entropy decoding on the third identifier using a second probability model determined based on the context index.

[0237] In this embodiment, the decoding end determines whether all components of the target transform coefficient are at a first preset value, and uses a third identifier to characterize the determination result. The decoding end performs entropy decoding on the third identifier, which eliminates the need to decode the components of the target transform coefficient, thus helping to improve decoding efficiency.

[0238] Optionally, the decoding end performs entropy decoding on the third identifier based on the second probability model, including at least one of the following:

[0239] When all components of the target transform coefficient have values ​​of the first preset value, the decoding end encodes the third identifier into the first value based on the second probability model to achieve decoding of the transform block to be decoded.

[0240] When the values ​​of all components of the target transform coefficient are not all of the first preset value, the decoding end encodes the third identifier into the second value based on the second probability model, and performs entropy decoding on all components of the target transform coefficient to achieve decoding of the transform block to be decoded.

[0241] For example, taking the first preset value as 0, if all components of the target transform coefficient are 0, the decoder encodes the third identifier as the first value (e.g., 1) based on the second probability model, and ends the decoding of the target transform coefficient. The decoder continues to traverse the next set of transform coefficients of the transform block to be decoded, and similarly determines whether all components of the next set of transform coefficients are 0 based on the above method, and uses the third identifier to characterize the determination result and encode the third identifier, until all coefficients of the transform block to be decoded have been traversed. If all components of the target transform coefficient are not 0, the decoder encodes the third identifier as the second value (e.g., 0) based on the second probability model, and performs entropy decoding on all components of the target transform coefficient, thereby realizing the decoding of the transform block to be decoded.

[0242] Specifically, entropy decoding is performed on all components of the target transform coefficients. For example, if the transform block to be decoded is a color attribute, then each set of transform coefficients in the transform block to be decoded has three components (Y, C, b, Cr), and the target transform coefficient also has three components; therefore, entropy decoding is performed on these three components. If the transform block to be decoded is a reflectivity attribute, then each set of transform coefficients in the transform block to be decoded has only one component, and the target transform coefficient also has only one component; therefore, entropy decoding is performed on this component.

[0243] Optionally, before the decoding end obtains the distribution characteristics of the components of the target transform coefficients of the transform block to be decoded, the method further includes:

[0244] The decoding end obtains the value of each set of transform coefficients of the transform block to be decoded;

[0245] The decoding end determines whether each set of transformation coefficients of the transformation block to be decoded is a second preset value, and uses a fourth identifier to characterize the judgment result.

[0246] The decoding end performs entropy decoding on the fourth identifier, and when each set of transformation coefficients of the transform block to be decoded is not all of the second preset value, it obtains the distribution characteristics of the components of the target transformation coefficients of the transform block to be decoded.

[0247] For example, after the decoder predicts, transforms, and quantizes the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded, the decoder determines whether each set of transform coefficients of the transform block to be decoded is a second preset value (e.g., 0), and uses a fourth identifier (e.g., skipBlock) to characterize the determination result, and performs entropy decoding on the fourth identifier. If each set of transform coefficients of the transform block to be decoded is not a second preset value, the decoder obtains the distribution characteristics of the components of the target transform coefficients of the transform block to be decoded, and further determines whether all components of the target transform coefficients are a first preset value.

[0248] In this embodiment of the application, the decoding end first determines whether each set of transformation coefficients of the transform block to be decoded is a second preset value. If not, it traverses each set of transformation coefficients of the transform block to be decoded and further determines whether all components of the quantized transformation coefficients are a first preset value.

[0249] Optionally, the decoding end performs entropy decoding on the fourth identifier, including at least one of the following:

[0250] When each set of transformation coefficients of the transform block to be decoded is a second preset value, the decoding end encodes the fourth identifier into a third value to achieve decoding of the transform block to be decoded;

[0251] If not all of the transformation coefficients of the block to be decoded are the second preset value, the decoding end encodes the fourth identifier as the fourth value.

[0252] For example, taking the second preset value as 0, if each set of transform coefficients of the transform block to be decoded is 0, the decoding end encodes the fourth identifier as the third value (e.g., 1) and ends the decoding of the current transform block to be decoded; if each set of transform coefficients of the transform block to be decoded is not 0, the decoding end encodes the fourth identifier as the fourth value (e.g., 0), and iterates through each set of transform coefficients of the transform block to be decoded to further determine whether all components of the transform coefficients are the first preset value. In this way, fast decoding of the transform block to be decoded can be achieved, which helps to improve decoding efficiency.

[0253] The point cloud attribute encoding method provided in this application can be executed by a point cloud attribute encoding device. As an example, the device can be an electronic device or a component within an electronic device, such as a chip or circuit. This application uses the execution of the point cloud attribute encoding method by a point cloud attribute encoding device as an example to illustrate the point cloud attribute encoding device provided in this application.

[0254] Please refer to Figure 8, which is a structural diagram of a point cloud attribute encoding device provided in an embodiment of this application. As shown in Figure 8, the point cloud attribute encoding device 800 includes:

[0255] The first acquisition module 801 is used to acquire the transform block to be encoded in the point cloud to be encoded.

[0256] The first prediction and transformation module 802 is used to predict and transform the transform block to be encoded to obtain the transformation coefficients of the transform block to be encoded.

[0257] The first determining module 803 is used to quantize the transform coefficients of the transform block to be encoded and determine the context index based on the context information of the quantized transform coefficients; wherein, the context information includes the block index corresponding to the quantized transform coefficients in the transform block to be encoded.

[0258] The second determining module 804 is used to determine a first probability model for entropy coding based on the context index;

[0259] The encoding module 805 is used to entropy encode the first identifier based on the first probability model, wherein the first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients.

[0260] Optionally, the block index corresponding to the quantized transform coefficients in the transform block to be encoded is categorized based on first information, which includes at least one of the following:

[0261] The frequency information corresponding to the block index of the quantized transform coefficients;

[0262] The block index of the quantized transform coefficients;

[0263] The size of the block index of the quantized transform coefficients;

[0264] The type of the quantized transform coefficients.

[0265] Optionally, the context information further includes at least one of the following:

[0266] First quantity;

[0267] The ratio of the first quantity to the second quantity;

[0268] Information used to characterize whether there are non-zero transform coefficients in the encoded transform coefficients of the transform block to be encoded, and the state of the non-zero transform coefficients;

[0269] Wherein, the first quantity is the sum of the number of non-zero transform coefficients encoded in the transform block to be encoded and the number of non-zero transform coefficients encoded in the neighboring transform blocks of the transform block to be encoded, and the second quantity is the sum of the number of transform coefficients in the transform block to be encoded and the number of transform coefficients in the neighboring transform blocks of the transform block to be encoded.

[0270] Optionally, the context index and the first probability model have a one-to-one correspondence.

[0271] Optionally, the encoding module 805 is further configured to:

[0272] Obtain the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded, wherein the target transform coefficients are any set of quantized transform coefficients of the transform block to be encoded;

[0273] Based on the distribution characteristics of the components of the target transform coefficient, it is determined whether the values ​​of all components of the target transform coefficient are all the first preset values, and the determination result is characterized by the first identifier;

[0274] The first identifier is entropy encoded based on the first probability model.

[0275] Optionally, the encoding module 805 is further configured to perform at least one of the following:

[0276] When all components of the target transform coefficient have values ​​of a first preset value, the first identifier is encoded as a first value based on the first probability model to encode the transform block to be encoded.

[0277] When the values ​​of all components of the target transform coefficient are not all of the first preset value, the first identifier is encoded into the second value based on the first probability model, and entropy encoding is performed on all components of the target transform coefficient to realize the encoding of the transform block to be encoded.

[0278] Optionally, the encoding module 805 is further configured to:

[0279] Obtain the values ​​of each group of quantized transform coefficients of the transform block to be encoded;

[0280] Determine whether each group of quantized transform coefficients of the transform block to be encoded is a second preset value, and use a second identifier to characterize the determination result;

[0281] The second identifier is entropy encoded, and when not all of the quantized transform coefficients of the transform block to be encoded are of the second preset value, the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded are obtained.

[0282] Optionally, the encoding module 805 is further configured to perform at least one of the following:

[0283] When each set of quantized transform coefficients of the transform block to be encoded is a second preset value, the second identifier is encoded as a third value to achieve the encoding of the transform block to be encoded.

[0284] If not all of the quantized transform coefficients of the transform block to be encoded are the second preset value, the second identifier is encoded as the fourth value.

[0285] Optionally, the first acquisition module 801 is further configured to:

[0286] The point cloud to be encoded is reordered;

[0287] A transformation tree structure is constructed for the reordered point cloud to be encoded based on the geometric distance between each transform block in the reordered point cloud to be encoded.

[0288] The transform block to be encoded is determined based on the transform tree structure, and the transform block to be encoded is the unencoded transform block in the transform tree structure.

[0289] The point cloud attribute encoding device 800 provided in this application embodiment can implement the various processes implemented in the method embodiment shown in FIG5 and achieve the same technical effect. To avoid repetition, it will not be described again here.

[0290] The point cloud attribute decoding method provided in this application can be executed by a point cloud attribute decoding device. As an example, the device can be an electronic device or a component within an electronic device, such as a chip or circuit. This application uses the execution of the point cloud attribute decoding method by a point cloud attribute decoding device as an example to illustrate the point cloud attribute decoding device provided in this application.

[0291] Please refer to Figure 9, which is a structural diagram of a point cloud attribute decoding device provided in an embodiment of this application. As shown in Figure 9, the point cloud attribute encoding device 900 includes:

[0292] The second acquisition module 901 is used to acquire the transform block to be decoded in the point cloud to be decoded;

[0293] The first decoding module 902 is used to perform entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded;

[0294] The third determining module 903 is used to determine a context index based on the context information of the transform coefficients, wherein the context information includes the block index corresponding to the transform coefficients in the transform block to be decoded;

[0295] The fourth determining module 904 is used to determine a second probability model for entropy decoding based on the context index;

[0296] The second decoding module 905 is used to perform entropy decoding on the third identifier based on the second probability model, wherein the third identifier is used to characterize the distribution characteristics of the components of the transform coefficient.

[0297] Optionally, the block index corresponding to the transform coefficient in the transform block to be decoded is categorized based on second information, which includes at least one of the following:

[0298] The frequency information corresponding to the block index of the transform coefficient;

[0299] The block index of the transformation coefficients;

[0300] The size of the block index of the transform coefficients;

[0301] The type of the transformation coefficients.

[0302] Optionally, the context information further includes at least one of the following:

[0303] Third quantity;

[0304] The ratio of the third quantity to the fourth quantity;

[0305] Information used to characterize whether there are non-zero transform coefficients among the decoded transform coefficients of the transform block to be decoded, and the state of the non-zero transform coefficients;

[0306] The third quantity is the sum of the number of decoded non-zero transform coefficients in the transform block to be decoded and the number of decoded non-zero transform coefficients in the neighboring transform blocks of the transform block to be decoded; the fourth quantity is the sum of the number of transform coefficients in the transform block to be decoded and the number of transform coefficients in the neighboring transform blocks of the transform block to be decoded.

[0307] Optionally, the context index and the second probability model have a one-to-one correspondence.

[0308] Optionally, the second decoding module 905 is further configured to:

[0309] Obtain the distribution characteristics of the components of the target transform coefficients of the transform block to be decoded, wherein the target transform coefficients are any set of transform coefficients of the transform block to be decoded;

[0310] Based on the distribution characteristics of the components of the target transformation coefficient, it is determined whether the values ​​of all components of the target transformation coefficient are all the first preset values, and the judgment result is characterized by the third identifier;

[0311] The third identifier is entropy decoded based on the second probability model.

[0312] Optionally, the second decoding module 905 is further configured to perform at least one of the following:

[0313] When all components of the target transform coefficient have values ​​of the first preset value, the third identifier is encoded as the first value based on the second probability model to achieve decoding of the transform block to be decoded.

[0314] When the values ​​of all components of the target transform coefficient are not all of the first preset value, the third identifier is encoded into the second value based on the second probability model, and entropy decoding is performed on all components of the target transform coefficient to achieve decoding of the transform block to be decoded.

[0315] Optionally, the second decoding module 905 is further configured to:

[0316] Obtain the value of each set of transform coefficients of the transform block to be decoded;

[0317] The terminal determines whether each set of transformation coefficients of the transformation block to be decoded is a second preset value, and uses a fourth identifier to characterize the determination result.

[0318] Entropy decoding is performed on the fourth identifier, and when each set of transform coefficients of the transform block to be decoded is not all of the second preset value, the distribution characteristics of the components of the target transform coefficients of the transform block to be decoded are obtained.

[0319] Optionally, the second decoding module 905 is further configured to perform at least one of the following:

[0320] When each set of transformation coefficients of the transform block to be decoded is a second preset value, the fourth identifier is encoded as a third value to achieve decoding of the transform block to be decoded;

[0321] If not all of the transformation coefficients of the block to be decoded are the second preset value, the fourth identifier is encoded as the fourth value.

[0322] Optionally, the second acquisition module 901 is further configured to:

[0323] The point cloud to be decoded is reordered;

[0324] A transformation tree structure is constructed for the reordered point cloud to be decoded based on the geometric distance between each transform block in the reordered point cloud to be decoded.

[0325] The transform block to be decoded is determined based on the transform tree structure, and the transform block to be decoded is the undecoded transform block in the transform tree structure.

[0326] The point cloud attribute decoding device 900 provided in this application embodiment can implement the various processes implemented at the decoding end in the method embodiment shown in Figure 7 and achieve the same technical effect. To avoid repetition, it will not be described again here.

[0327] As shown in Figure 10, this application embodiment also provides an electronic device 1000, including a processor 1001 and a memory 1002. The memory 1002 stores programs or instructions that can run on the processor 1001. For example, when the electronic device 1000 is an encoding device, the program or instructions executed by the processor 1001 implement the various steps of the above-described point cloud attribute encoding method embodiment and achieve the same technical effect. When the electronic device 1000 is a decoding device, the program or instructions executed by the processor 1001 implement the various steps of the above-described point cloud attribute decoding method embodiment and achieve the same technical effect. To avoid repetition, this will not be repeated here. Optionally, the memory 1002 can be the memory 102 or memory 113 in the embodiment shown in Figure 1, and the processor 1001 can implement the functions of the encoder 200 or decoder 300 in the embodiments shown in Figures 1-3.

[0328] This 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 point cloud attribute encoding or decoding method embodiments described above. Optionally, the memory may be memory 102 or memory 113 in the embodiment shown in FIG1, and the processing circuit may implement the functions of encoder 200 or decoder 300 in the embodiments shown in FIG1-3.

[0329] This application also provides an electronic device, including a processor and a communication interface. The communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the steps in the method embodiment shown in FIG11. This device embodiment corresponds to the above method embodiment, and all implementation processes and methods of the above method embodiments can be applied to this terminal embodiment and can achieve the same technical effect.

[0330] The processor or processing circuit in the embodiments of this application may include general-purpose processors, special-purpose processors, etc., such as central processing units (CPUs), microprocessors, digital signal processors (DSPs), artificial intelligence (AI) processors, graphics processing units (GPUs), application-specific integrated circuits (ASICs), network processors (NPs), field-programmable gate arrays (FPGAs), or other programmable logic devices, gate circuits, transistors, discrete hardware components, etc. The communication interface in the embodiments of this application may include transceivers, pins, circuits, buses, etc.

[0331] The aforementioned electronic devices can be terminals or other devices besides terminals, such as servers, network attached storage (NAS), etc.

[0332] Among them, the terminal can also be called user equipment (UE), which can be a mobile phone, tablet computer, laptop computer, notebook computer, personal digital assistant (PDA), handheld computer, netbook, ultra-mobile personal computer (UMPC), mobile internet device (MID), augmented reality (AR), virtual reality (VR) device, mixed reality (MR) device, robot, wearable device, flight vehicle, vehicle user equipment (VUE), shipborne equipment, pedestrian user equipment (PUE), smart home (home devices with wireless communication functions, such as refrigerators, televisions, washing machines or furniture, etc.), game console, personal computer (PC), ATM or self-service machine, etc. Wearable devices include: smartwatches, smart bracelets, smart earphones, smart glasses, smart jewelry (smart bracelets, smart chains, smart rings, smart necklaces, smart anklets, smart anklets, etc.), smart wristbands, smart clothing, etc. Among these, in-vehicle devices can also be referred to as in-vehicle terminals, in-vehicle controllers, in-vehicle modules, in-vehicle components, in-vehicle chips, or in-vehicle units, etc. It should be noted that the embodiments in this application do not limit the specific type of terminal.

[0333] A server can be a standalone physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server. A cloud server can provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDNs), or cloud computing services based on big data and artificial intelligence platforms.

[0334] For example, the aforementioned electronic device may include, but is not limited to, the type of source device 100 or destination device 110 shown in FIG1.

[0335] Taking an electronic device as an example, Figure 11 is a schematic diagram of the hardware structure of a terminal implementing an embodiment of this application.

[0336] The terminal 1100 includes, but is not limited to, at least some of the following components: radio frequency unit 1101, network module 1102, audio output unit 1103, input unit 1104, sensor 1105, display unit 1106, user input unit 1107, interface unit 1108, memory 1109, and processor 1110.

[0337] Those skilled in the art will understand that terminal 1100 may also include a power supply (such as a battery) for powering various components. The power supply can be logically connected to processor 1110 through a power management system, thereby enabling functions such as charging, discharging, and power consumption management through the power management system. The terminal structure shown in Figure 11 does not constitute a limitation on the terminal. The terminal may include more or fewer components than shown, or combine certain components, or have different component arrangements, which will not be elaborated here.

[0338] It should be understood that, in this embodiment, the input unit 1104 may include a graphics processor 11041 and a microphone 11042. The graphics processor 11041 processes image data of still images or videos obtained by an image acquisition device (such as a camera) in video acquisition mode or image acquisition mode, or it may process the obtained point cloud data. The display unit 1106 may include a display panel 11061, which may be configured in the form of a liquid crystal display, an organic light-emitting diode, etc. The user input unit 1107 includes at least one of a touch panel 11071 and other input devices 11072. The touch panel 11071 is also called a touch screen. The touch panel 11071 may include a touch detection device and a touch controller. Other input devices 11072 may include, but are not limited to, physical keyboards, function keys (such as volume control buttons, power buttons, etc.), trackballs, mice, and joysticks, which will not be described in detail here.

[0339] In this embodiment, after receiving downlink data from the network-side device, the radio frequency unit 1101 can transmit it to the processor 1110 for processing; in addition, the radio frequency unit 1101 can send uplink data to the network-side device. Typically, the radio frequency unit 1101 includes, but is not limited to, antennas, amplifiers, transceivers, couplers, low-noise amplifiers, duplexers, etc.

[0340] The memory 1109 can be used to store software programs or instructions, as well as various data. The memory 1109 may primarily include a first storage area for storing programs or instructions and a second storage area for storing data. The first storage area may store the operating system, application programs or instructions required for at least one function (such as sound playback, image playback, etc.). Furthermore, the memory 1109 may include volatile memory or non-volatile memory. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct memory bus RAM (DRRAM). The memory 1109 in this embodiment includes, but is not limited to, these and any other suitable types of memory.

[0341] Processor 1110 may include one or more processing units; optionally, processor 1110 integrates an application processor and a modem processor, wherein the application processor mainly handles operations involving the operating system, user interface, and applications, and the modem processor mainly handles wireless communication signals, such as a baseband processor. It is understood that the aforementioned modem processor may also not be integrated into processor 1110.

[0342] When the terminal 1100 is an encoding terminal, the processor 1110 is used for:

[0343] Obtain the transform block to be encoded from the point cloud to be encoded;

[0344] The transform block to be encoded is predicted and transformed to obtain the transform coefficients of the transform block to be encoded;

[0345] The transform coefficients of the transform block to be encoded are quantized, and a context index is determined based on the context information of the quantized transform coefficients; wherein, the context information includes the block index corresponding to the quantized transform coefficients in the transform block to be encoded;

[0346] A first probability model for entropy coding is determined based on the context index;

[0347] The first identifier is entropy encoded based on the first probability model, and the first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients.

[0348] When the terminal 1100 is a decoding terminal, the processor 1110 is used to:

[0349] Obtain the transform block to be decoded from the point cloud to be decoded;

[0350] Entropy decoding is performed on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded;

[0351] The context index is determined based on the context information of the transform coefficients, wherein the context information includes the block index corresponding to the transform coefficients in the transform block to be decoded;

[0352] A second probability model for entropy decoding is determined based on the context index;

[0353] Entropy decoding is performed on the third identifier based on the second probability model, and the third identifier is used to characterize the distribution characteristics of the components of the transformation coefficient.

[0354] In this embodiment, the terminal can determine the context index based on the block index corresponding to the transform coefficient. The position of the transform coefficient in the transform block to be encoded is fixed, and its corresponding block index is also fixed. Therefore, even if the transform block to be encoded does not include 8 transform coefficients, the block index corresponding to each transform coefficient in the transform block to be encoded can still be quickly determined for the sparse and irregular point cloud. This allows for the rapid determination of the context index and the first probability model corresponding to the context index, thereby effectively improving the encoding efficiency or decoding efficiency.

[0355] It is understood that the implementation process of each implementation method mentioned in this embodiment can refer to the relevant description in the above method embodiment and achieve the same or corresponding technical effect. To avoid repetition, it will not be described again here.

[0356] This application also provides a readable storage medium storing a program or instructions. When the program or instructions are executed by a processor, they implement the various processes of the above-described point cloud attribute encoding method or point cloud attribute decoding method embodiments and achieve the same technical effect. To avoid repetition, they will not be described again here.

[0357] The processor mentioned above is the processor in the terminal described in the above embodiments. The readable storage medium includes computer-readable storage media, such as ROM, RAM, magnetic disk, or optical disk. In some examples, the readable storage medium may be a non-transient readable storage medium.

[0358] This application embodiment also provides a chip, which includes a processor and a communication interface. The communication interface is coupled to the processor. The processor is used to run programs or instructions to implement the various processes of the above-described point cloud attribute encoding method or point cloud attribute decoding method embodiments, and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0359] It should be understood that the chips mentioned in the embodiments of this application may include system-on-a-chip (also known as system chip, chip system, or system-on-a-chip) or discrete display chips, etc.

[0360] This application also provides a computer program / program product, which is stored in a storage medium and executed by at least one processor to implement the various processes of the above-described point cloud attribute encoding method or point cloud attribute decoding method embodiments, and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0361] This application also provides an encoding / decoding system, including: an encoding end device and a decoding end device. The encoding end device can be used to perform the steps of the point cloud attribute encoding method described above, and the decoding end device can be used to perform the steps of the point cloud attribute decoding method described above.

[0362] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. Furthermore, it should be noted that the scope of the methods and apparatuses in the embodiments of this application is not limited to performing functions in the order shown or discussed, but may also include performing functions substantially simultaneously or in the reverse order, depending on the functions involved. For example, the described methods may be performed in a different order than described, and various steps may be added, omitted, or combined. Additionally, features described with reference to certain examples may be combined in other examples.

[0363] From the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of computer software products plus necessary general-purpose hardware platforms, and of course, they can also be implemented by hardware. The computer software product is stored in a storage medium (such as ROM, RAM, magnetic disk, optical disk, etc.), and the computer software product includes several instructions to cause the terminal or network-side device to execute the methods described in the various embodiments of this application.

[0364] The embodiments of this application have been described above with reference to the accompanying drawings. However, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other implementations under the guidance of this application without departing from the spirit and scope of the claims. All of these implementations are within the protection scope of this application.

Claims

1. A point cloud attribute encoding method, comprising: The encoding end acquires the transform block to be encoded from the point cloud to be encoded; The encoding end predicts and transforms the transform block to be encoded to obtain the transform coefficients of the transform block to be encoded; The encoding end quantizes the transform coefficients of the transform block to be encoded and determines the context index based on the context information of the quantized transform coefficients; wherein, the context information includes the block index corresponding to the quantized transform coefficients in the transform block to be encoded; The encoding end determines a first probability model for entropy coding based on the context index; The encoding end performs entropy encoding on the first identifier based on the first probability model. The first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients.

2. The method according to claim 1, wherein, The block indices corresponding to the quantized transform coefficients in the transform block to be encoded are categorized based on first information, which includes at least one of the following: The frequency information corresponding to the block index of the quantized transform coefficients; The block index of the quantized transform coefficients; The size of the block index of the quantized transform coefficients; The type of the quantized transform coefficients.

3. The method according to claim 1 or 2, wherein, The context information also includes at least one of the following: First quantity; The ratio of the first quantity to the second quantity; Information used to characterize whether there are non-zero transform coefficients in the encoded transform coefficients of the transform block to be encoded, and the state of the non-zero transform coefficients; Wherein, the first quantity is the sum of the number of non-zero transform coefficients encoded in the transform block to be encoded and the number of non-zero transform coefficients encoded in the neighboring transform blocks of the transform block to be encoded, and the second quantity is the sum of the number of transform coefficients in the transform block to be encoded and the number of transform coefficients in the neighboring transform blocks of the transform block to be encoded.

4. The method according to any one of claims 1-3, wherein, The context index has a one-to-one correspondence with the first probability model.

5. The method according to any one of claims 1-4, wherein, The encoding end performs entropy encoding on the first identifier based on the first probability model, including: The encoding end obtains the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded, wherein the target transform coefficients are any set of quantized transform coefficients of the transform block to be encoded. The encoding end determines whether the values ​​of all components of the target transform coefficient are all the first preset values ​​based on the distribution characteristics of the components of the target transform coefficient, and uses the first identifier to characterize the determination result; The encoding end performs entropy encoding on the first identifier based on the first probability model.

6. The method according to claim 5, wherein, The encoding end performs entropy encoding on the first identifier based on the first probability model, including at least one of the following: When all components of the target transform coefficient have values ​​of a first preset value, the encoding end encodes the first identifier as a first value based on the first probability model to encode the transform block to be encoded. When the values ​​of all components of the target transform coefficient are not all of the first preset value, the encoding end encodes the first identifier into a second value based on the first probability model, and performs entropy encoding on all components of the target transform coefficient to achieve the encoding of the transform block to be encoded.

7. The method according to claim 5, wherein, Before the encoding end obtains the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded, the method further includes: The encoding end obtains the value of each group of quantized transform coefficients of the transform block to be encoded; The encoding end determines whether each group of quantized transform coefficients of the transform block to be encoded is a second preset value, and uses a second identifier to characterize the judgment result. The encoding end performs entropy encoding on the second identifier, and when not all of the quantized transform coefficients of the transform block to be encoded are of the second preset value, it obtains the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded.

8. The method according to claim 7, wherein, The encoding end performs entropy encoding on the second identifier, including at least one of the following: When each set of quantized transform coefficients of the transform block to be encoded is a second preset value, the encoding end encodes the second identifier as a third value to achieve the encoding of the transform block to be encoded. If not all of the quantized transform coefficients of the transform block to be encoded are the second preset value, the encoding end encodes the second identifier as the fourth value.

9. The method according to any one of claims 1-8, wherein, The encoding end acquires the transform block to be encoded from the point cloud to be encoded, including: The encoding end reorders the point cloud to be encoded; The encoding end constructs a transformation tree structure for the reordered point cloud to be encoded based on the geometric distance between each transformation block in the reordered point cloud to be encoded. The encoding end determines the transform block to be encoded based on the transform tree structure, and the transform block to be encoded is the unencoded transform block in the transform tree structure.

10. A point cloud attribute decoding method, comprising: The decoding end acquires the transform block to be decoded from the point cloud to be decoded; The decoding end performs entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded; The decoding end determines the context index based on the context information of the transform coefficients, wherein the context information includes the block index corresponding to the transform coefficients in the transform block to be decoded; The decoding end determines a second probability model for entropy decoding based on the context index; The decoding end performs entropy decoding on the third identifier based on the second probability model, and the third identifier is used to characterize the distribution characteristics of the components of the transform coefficient.

11. The method according to claim 10, wherein, The block indices corresponding to the transform coefficients in the transform block to be decoded are categorized based on second information, which includes at least one of the following: The frequency information corresponding to the block index of the transform coefficient; The block index of the transformation coefficients; The size of the block index of the transform coefficients; The type of the transformation coefficients.

12. The method according to claim 10 or 11, wherein, The context information also includes at least one of the following: Third quantity; The ratio of the third quantity to the fourth quantity; Information used to characterize whether there are non-zero transform coefficients among the decoded transform coefficients of the transform block to be decoded, and the state of the non-zero transform coefficients; The third quantity is the sum of the number of decoded non-zero transform coefficients in the transform block to be decoded and the number of decoded non-zero transform coefficients in the neighboring transform blocks of the transform block to be decoded; the fourth quantity is the sum of the number of transform coefficients in the transform block to be decoded and the number of transform coefficients in the neighboring transform blocks of the transform block to be decoded.

13. The method according to any one of claims 10-12, wherein, The context index and the second probability model have a one-to-one correspondence.

14. The method according to any one of claims 10-13, wherein, The decoding end performs entropy decoding on the third identifier based on the second probability model, including: The decoding end obtains the distribution characteristics of the components of the target transform coefficients of the transform block to be decoded, wherein the target transform coefficients are any set of transform coefficients of the transform block to be decoded; The decoding end determines whether the values ​​of all components of the target transform coefficient are all the first preset values ​​based on the distribution characteristics of the components of the target transform coefficient, and uses the third identifier to characterize the determination result; The decoding end performs entropy decoding on the third identifier based on the second probability model.

15. The method according to claim 14, wherein, The decoding end performs entropy decoding on the third identifier based on the second probability model, including at least one of the following: When all components of the target transform coefficient have values ​​of the first preset value, the decoding end encodes the third identifier into the first value based on the second probability model to achieve decoding of the transform block to be decoded. When the values ​​of all components of the target transform coefficient are not all of the first preset value, the decoding end encodes the third identifier into the second value based on the second probability model, and performs entropy decoding on all components of the target transform coefficient to achieve decoding of the transform block to be decoded.

16. The method of claim 14, wherein, Before the decoding end obtains the distribution characteristics of the components of the target transform coefficients of the transform block to be decoded, the method further includes: The decoding end obtains the value of each set of transform coefficients of the transform block to be decoded; The decoding end determines whether each set of transformation coefficients of the transformation block to be decoded is a second preset value, and uses a fourth identifier to characterize the judgment result. The decoding end performs entropy decoding on the fourth identifier, and when each set of transformation coefficients of the transform block to be decoded is not all of the second preset value, it obtains the distribution characteristics of the components of the target transformation coefficients of the transform block to be decoded.

17. The method according to claim 16, wherein, The decoding end performs entropy decoding on the fourth identifier, including at least one of the following: When each set of transformation coefficients of the transform block to be decoded is a second preset value, the decoding end encodes the fourth identifier into a third value to achieve decoding of the transform block to be decoded; If not all of the transformation coefficients of the block to be decoded are the second preset value, the decoding end encodes the fourth identifier as the fourth value.

18. The method according to any one of claims 10-17, wherein, The decoding end acquires the transform block to be decoded in the point cloud to be decoded, including: The decoding end reorders the point cloud to be decoded; The decoding end constructs a transformation tree structure for the reordered point cloud to be decoded based on the geometric distance between each transformation block in the reordered point cloud to be decoded. The decoding end determines the transform block to be decoded according to the transform tree structure, and the transform block to be decoded is the undecoded transform block in the transform tree structure.

19. A point cloud attribute encoding device, comprising: The first acquisition module is used to acquire the transform block to be encoded in the point cloud to be encoded. The first prediction and transformation module is used to predict and transform the transform block to be encoded to obtain the transformation coefficients of the transform block to be encoded. The first determining module is used to quantize the transform coefficients of the transform block to be encoded, and determine the context index based on the context information of the quantized transform coefficients; wherein, the context information includes the block index corresponding to the quantized transform coefficients in the transform block to be encoded. The second determining module is used to determine a first probability model for entropy coding based on the context index; The encoding module is used to entropy encode the first identifier based on the first probability model, wherein the first identifier is used to characterize the distribution characteristics of the components of the quantized transform coefficients.

20. The apparatus according to claim 19, wherein, The block indices corresponding to the quantized transform coefficients in the transform block to be encoded are categorized based on first information, which includes at least one of the following: The frequency information corresponding to the block index of the quantized transform coefficients; The block index of the quantized transform coefficients; The size of the block index of the quantized transform coefficients; The type of the quantized transform coefficients.

21. The apparatus according to claim 19 or 20, wherein, The context information also includes at least one of the following: First quantity; The ratio of the first quantity to the second quantity; Information used to characterize whether there are non-zero transform coefficients in the encoded transform coefficients of the transform block to be encoded, and the state of the non-zero transform coefficients; Wherein, the first quantity is the sum of the number of non-zero transform coefficients encoded in the transform block to be encoded and the number of non-zero transform coefficients encoded in the neighboring transform blocks of the transform block to be encoded, and the second quantity is the sum of the number of transform coefficients in the transform block to be encoded and the number of transform coefficients in the neighboring transform blocks of the transform block to be encoded.

22. The apparatus according to any one of claims 19-21, wherein the encoding module is further configured to: Obtain the distribution characteristics of the components of the quantized target transform coefficients of the transform block to be encoded, wherein the target transform coefficients are any set of quantized transform coefficients of the transform block to be encoded; Based on the distribution characteristics of the components of the target transform coefficient, it is determined whether the values ​​of all components of the target transform coefficient are all the first preset values, and the determination result is characterized by the first identifier; The first identifier is entropy encoded based on the first probability model.

23. A point cloud attribute decoding device, comprising: The second acquisition module is used to acquire the transform block to be decoded in the point cloud to be decoded; The first decoding module is used to perform entropy decoding on the transform block to be decoded to obtain the transform coefficients of the transform block to be decoded; The third determining module is used to determine the context index based on the context information of the transform coefficients, wherein the context information includes the block index corresponding to the transform coefficients in the transform block to be decoded; The fourth determining module is used to determine a second probability model for entropy decoding based on the context index; The second decoding module is used to perform entropy decoding on the third identifier based on the second probability model, wherein the third identifier is used to characterize the distribution characteristics of the components of the transform coefficients.

24. The apparatus according to claim 23, wherein, The block indices corresponding to the transform coefficients in the transform block to be decoded are categorized based on second information, which includes at least one of the following: The frequency information corresponding to the block index of the transform coefficient; The block index of the transformation coefficients; The size of the block index of the transform coefficients; The type of the transformation coefficients.

25. The apparatus of claim 23 or 24, wherein the context information further comprises at least one of the following: Third quantity; The ratio of the third quantity to the fourth quantity; Information used to characterize whether there are non-zero transform coefficients among the decoded transform coefficients of the transform block to be decoded, and the state of the non-zero transform coefficients; in, The third quantity is the sum of the number of decoded non-zero transform coefficients in the transform block to be decoded and the number of decoded non-zero transform coefficients in the neighboring transform blocks of the transform block to be decoded; the fourth quantity is the sum of the number of transform coefficients in the transform block to be decoded and the number of transform coefficients in the neighboring transform blocks of the transform block to be decoded.

26. The apparatus according to any one of claims 23-25, wherein the decoding module is further configured to: Obtain the distribution characteristics of the components of the target transform coefficients of the transform block to be decoded, wherein the target transform coefficients are any set of transform coefficients of the transform block to be decoded; Based on the distribution characteristics of the components of the target transformation coefficient, it is determined whether the values ​​of all components of the target transformation coefficient are all the first preset values, and the judgment result is characterized by the third identifier; The third identifier is entropy decoded based on the second probability model.

27. An electronic device comprising a processor and a memory, the memory storing a program or instructions executable on the processor, the program or instructions, when executed by the processor, implementing the steps of the point cloud attribute encoding method as claimed in any one of claims 1-9, or implementing the steps of the point cloud attribute decoding method as claimed in any one of claims 10-18.

28. A readable storage medium storing a program or instructions that, when executed by a processor, implement the steps of the point cloud attribute encoding method as described in any one of claims 1-9, or the steps of the point cloud attribute decoding method as described in any one of claims 10-18.

29. A chip, the chip comprising a processor and a communication interface, the communication interface being coupled to the processor, the processor being configured to run a program or instructions to implement the steps of the point cloud attribute encoding method as described in any one of claims 1-9, or to implement the steps of the point cloud attribute decoding method as described in any one of claims 10-18.