Encoding and decoding methods and devices, and electronic equipment
By using coded attribute information in point cloud compression technology for cross-attribute prediction, the problems of high code rate and low encoding and decoding efficiency caused by inaccurate attribute prediction in the prior art are solved, and lower code rate and higher encoding and decoding efficiency are achieved.
Patent Information
- Application Number
- CN202311336481.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-16
- Publication Date
- 2025-04-18
AI Technical Summary
In the existing geometry-based point cloud compression technology, only geometric information is used for attribute prediction, resulting in the space distance between the to-be-coded points and the adjacent predicted points in complex point cloud spaces, but the attribute values are different, so the attribute redundancy cannot be effectively realized, resulting in high code rate and low encoding and decoding efficiency.
By obtaining the first residual information of the first attribute of the point to be encoded, cross-attribute prediction is performed based on the encoded second attribute, and a target code stream is generated to reduce information redundancy in the code stream.
The code rate is reduced, the encoding and decoding efficiency is improved, and information redundancy is reduced during the encoding process by fully considering the encoded attribute information.
Smart Images

Figure CN119854515A_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the field of coding and decoding technology, and specifically relates to a coding and decoding method, device and electronic equipment. Background Art
[0002] In the existing geometry-based point cloud compression (G-PCC) attribute encoding process, only geometric information (e.g. point-to-point distance) is used as the nearest neighbor selection criterion for attribute prediction, that is, the nearest neighbor of the current point to be encoded is selected based on the point-to-point distance, and the function of the distance is used as the weight to perform weighted prediction on the attribute information of the nearest neighbor to obtain the attribute prediction value of the current point to be encoded / decoded.
[0003] However, due to the complex spatial distribution of point clouds, only considering geometric information as the similarity judgment condition for attribute prediction is not accurate and effective enough. In the original point cloud, there may be a situation where the spatial distance between the point to be encoded and the adjacent predicted point is close, but the attribute value is very different. In this case, the current attribute prediction method cannot obtain a small transformation coefficient or prediction residual, and cannot achieve efficient attribute redundancy removal. Summary of the invention
[0004] The embodiments of the present application provide a coding and decoding method, device and electronic device to reduce the bit rate and improve the coding and decoding efficiency.
[0005] In a first aspect, a coding method is provided, the method comprising:
[0006] The encoder obtains first residual information of a first attribute of a point to be encoded, where the first residual information is determined based on a second attribute of the point to be encoded, where the second attribute is an encoded attribute, and the first attribute and the second attribute have different attribute types;
[0007] The encoding end generates a target bitstream according to the first residual information.
[0008] In a second aspect, there is provided an encoding device, comprising:
[0009] A first acquisition module, configured to acquire first residual information of a first attribute of a to-be-encoded point, wherein the first residual information is determined based on a second attribute of the to-be-encoded point, wherein the second attribute is an encoded attribute, and the attribute types of the first attribute and the second attribute are different;
[0010] A generating module is used to generate a target bit stream according to the first residual information.
[0011] In a third aspect, a decoding method is provided, the method comprising:
[0012] The decoding end obtains a reconstructed attribute value of a first attribute of a point to be decoded, wherein the reconstructed attribute value is determined based on a second attribute of the point to be decoded, wherein the second attribute is a decoded attribute, and the first attribute and the second attribute are of different attribute types.
[0013] In a fourth aspect, a decoding device is provided, comprising:
[0014] The second acquisition module is used to acquire a reconstructed attribute value of a first attribute of the point to be decoded, wherein the reconstructed attribute value is determined based on a second attribute of the point to be decoded, wherein the second attribute is a decoded attribute, and the first attribute and the second attribute are of different attribute types.
[0015] In a fifth aspect, an electronic device is provided, comprising a processor and a memory, wherein the memory stores programs or instructions that can be run on the processor, and when the programs or instructions are executed by the processor, the steps of the method described in the first aspect are implemented.
[0016] In a sixth aspect, an electronic device is provided, including a processor and a communication interface, wherein the processor is used to obtain first residual information of a first attribute of a to-be-encoded point, the first residual information is determined based on a second attribute of the to-be-encoded point, the second attribute is an encoded attribute, and the attribute types of the first attribute and the second attribute are different;
[0017] A target bitstream is generated according to the first residual information.
[0018] In a seventh aspect, an electronic device is provided, comprising a processor and a memory, wherein the memory stores programs or instructions that can be run on the processor, and when the programs or instructions are executed by the processor, the steps of the method described in the second aspect are implemented.
[0019] In an eighth aspect, an electronic device is provided, comprising a processor and a communication interface, wherein the processor is used to obtain a reconstructed attribute value of a first attribute of a point to be decoded, wherein the reconstructed attribute value is determined based on a second attribute of the point to be decoded, wherein the second attribute is a decoded attribute, and the attribute types of the first attribute and the second attribute are different.
[0020] In a ninth aspect, a coding and decoding system is provided, comprising: a coding device and a decoding device, wherein the coding device can be used to execute the steps of the method described in the first aspect, and the decoding device can be used to execute the steps of the method described in the second aspect.
[0021] In a tenth aspect, a readable storage medium is provided, on which a program or instruction is stored. When the program or instruction is executed by a processor, the steps of the method described in the first aspect or the second aspect are implemented.
[0022] In the eleventh aspect, a chip is provided, comprising a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run a program or instruction to implement the steps of the method described in the first aspect or the second aspect.
[0023] In the twelfth aspect, a computer program / program product is provided, wherein the computer program / program product is stored in a storage medium and is executed by at least one processor to implement the steps of the method described in the first aspect or the second aspect.
[0024] In an embodiment of the present application, by determining the first residual information of the first attribute of the point to be encoded based on the second attribute of the point to be encoded, cross-attribute prediction can be achieved. In the process of encoding the first attribute, the encoded second attribute is fully considered, and the information redundancy in the code stream is reduced, thereby reducing the bit rate and improving the encoding efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] Figure 1 is a schematic diagram of a coding and decoding system provided in an embodiment of the present application;
[0026] Figure 2 It is a coding flow chart performed by an encoder based on the AVS-PCC coding framework;
[0027] Figure 3 is a flow chart of encoding performed by an encoder based on the encoding framework of MPEG G-PCC;
[0028] Figure 4 is a decoding flow chart performed by a decoder based on the AVS-PCC decoding framework;
[0029] Figure 5 is a decoding flow chart performed by a decoder based on the decoding framework of MPEG G-PCC;
[0030] Figure 6 This is the G-PCC encoder framework diagram;
[0031] Figure 7 This is the G-PCC decoder framework diagram;
[0032] Figure 8 It is the generation process of list1 and list2;
[0033] Fig. 9 It is the definition of relative orientation;
[0034] Fig.10 It is a flowchart of the encoding method of an embodiment of the present application;
[0035] Fig.11It is a schematic diagram of the principle of the encoding method of the embodiment of the present application;
[0036] Fig.12 is a flowchart of a decoding method according to an embodiment of the present application;
[0037] Fig.13 is a schematic diagram of a module of an encoding device according to an embodiment of the present application;
[0038] Fig.14 is a schematic diagram of a module of a decoding device according to an embodiment of the present application;
[0039] Fig.15 is a schematic diagram of the structure of an electronic device according to an embodiment of the present application;
[0040] Fig.16 It is a schematic diagram of the structure of the terminal of an embodiment of the present application. DETAILED DESCRIPTION
[0041] The following will be combined with the drawings in the embodiments of the present application to clearly describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field belong to the scope of protection of this application.
[0042] The terms "first", "second", etc. of the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the terms used in this way are interchangeable where appropriate, so that the embodiments of the present application can be implemented in an order other than those illustrated or described herein, and the objects distinguished by "first" and "second" are generally of one type, and the number of objects is not limited, for example, the first object can be one or more. In addition, "or" in the present application represents at least one of the connected objects. For example, "A or B" covers three schemes, namely, Scheme 1: including A but not including B; Scheme 2: including B but not including A; Scheme 3: including both A and B. The character " / " generally indicates that the objects associated with each other are in an "or" relationship.
[0043] Before introducing the technical solutions provided by the embodiments of the present application, the meanings of some of the terms are first introduced.
[0044] Point Cloud: Point cloud refers to a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a 3D object or 3D scene. Point clouds can be divided into different categories according to different classification standards. For example, according to the acquisition method of point clouds, they can be divided into dense point clouds and sparse point clouds; for example, according to the time series type of point clouds, they can be divided into static point clouds and dynamic point clouds.
[0045] Point Cloud Data: The geometric coordinate information and attribute information of each point in the point cloud together constitute the point cloud data. The geometric coordinate information can also be called three-dimensional position information. The geometric coordinate information of a point in the point cloud refers to the spatial coordinates (x, y, z) of the point, which can include the coordinate values of the point in each coordinate axis direction of the three-dimensional coordinate system, for example, the coordinate value x in the X-axis direction, the coordinate value y in the Y-axis direction, and the coordinate value z in the Z-axis direction. The attribute information of a point in the point cloud may include at least one of the following: color information, material information, laser reflection intensity information (also called reflectivity). Usually, each point in the point cloud has the same amount of attribute information. For example, each point in the point cloud can have two kinds of attribute information: color information and laser reflection intensity. For another example, each point in the point cloud can have three kinds of attribute information: color information, material information, and laser reflection intensity information.
[0046] Point Cloud Compression (PCC): Point cloud coding refers to the process of encoding the geometric coordinate information and attribute information of each point in the point cloud to obtain a compressed code stream. Point cloud coding can include two main processes: geometric coordinate information encoding and attribute information encoding. At present, the point cloud coding framework that can compress point clouds can be the geometry-based point cloud compression (G-PCC) codec framework or the video-based point cloud compression (V-PCC) codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS).
[0047] Point cloud decoding: Point cloud decoding refers to the process of decoding the compressed bitstream obtained by point cloud encoding to reconstruct the point cloud. In detail, it refers to the process of reconstructing the geometric coordinate information and attribute information of each point in the point cloud based on the geometric bitstream and attribute bitstream in the compressed bitstream. After obtaining the compressed bitstream at the decoding end, the geometric bitstream is first entropy decoded to obtain the quantized information of each point in the point cloud, and then inverse quantization is performed to reconstruct the geometric coordinate information of each point in the point cloud. As for the attribute bitstream, entropy decoding is first performed to obtain the quantized attribute residual information or quantized transform coefficients of each point in the point cloud; then the quantized attribute residual information is inversely quantized to obtain the reconstructed residual information, and the quantized transform coefficients are inversely quantized to obtain the reconstructed transform coefficients. The reconstructed transform coefficients are inversely transformed to obtain the reconstructed residual information. According to the reconstructed residual information of each point in the point cloud, the attribute information of each point in the point cloud can be reconstructed. The reconstructed attribute information of each point in the point cloud is matched one by one with the reconstructed geometric coordinate information in order to reconstruct the point cloud.
[0048] Figure 1 Schematic diagram of a coding and decoding system 10 provided in an embodiment of the present application. The technical solution of the embodiment of the present application involves coding and decoding (CODEC) (including encoding or decoding) of point cloud data.
[0049] like Figure 1 As shown, the codec system 10 includes a source device 100, which provides encoded point cloud data that is decoded and displayed by a destination device 110. Specifically, the source device 100 provides the point cloud data to the destination device 110 via a communication medium 120. The source device 100 and the destination device 110 may include any one or more of a desktop computer, a notebook (i.e., laptop) computer, a tablet computer, a set-top box, a mobile phone, a wearable device (e.g., a smart watch or a wearable camera), a television, a camera, a display device, a vehicle-mounted device, a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (MR) device, a digital media player, a video game console, a video conferencing device, a video streaming device, a broadcast receiver device, a broadcast transmitter device, a spacecraft, an aircraft, a robot, a satellite, and the like.
[0050] exist Figure 1 In the example of , the source device 100 includes a data source 101, a memory 102, an encoder 200, and an output interface 104. The destination device 110 includes an input interface 111, a decoder 300, a memory 113, and a display device 114. The source device 100 represents an example of an encoding device, and the destination device 110 represents an example of a decoding device. In other examples, the source device 100 and the destination device 110 may not include Figure 1Some components in, or can also include Figure 1 For example, the source device 100 may acquire point cloud data through an external capture device. Similarly, the destination device 110 may be connected to an external display device interface without including an integrated display device. For another example, the memory 102 and the memory 113 may be external memories.
[0051] Although Figure 1 The source device 100 and the destination device 110 are shown as separate devices, but in some examples, the two may also be integrated into one device. In such embodiments, the functions corresponding to the source device 100 and the functions corresponding to the destination device 110 may be implemented using the same hardware or software, or using separate hardware or software, or any combination thereof.
[0052] In some examples, the source device 100 and the destination device 110 can perform unidirectional data transmission or bidirectional data transmission. If it is bidirectional data transmission, the source device 100 and the destination device 110 can operate in a substantially symmetrical manner, that is, each of the source device 100 and the destination device 110 includes an encoder and a decoder.
[0053] The data source 101 represents the source of point cloud data (i.e., the original, unencoded point cloud data) and provides the encoder 200 with the point cloud data, and the encoder 103 encodes the point cloud data. The source device 100 may include a capture device (e.g., a camera device, a sensor device, or a scanning device), an archive of previously captured point cloud data, or a feed interface for receiving point cloud data from a data content provider. Among them, the camera device may include an ordinary camera, a stereo camera, and a light field camera, etc., the sensor device may include a laser device, a radar device, etc., and the scanning device may include a three-dimensional laser scanning device, etc. The point cloud data can be obtained by collecting the visual scene of the real world through the capture device. As an alternative, the data source 101 may generate computer graphics-based data as source data, or combine real-time data, archived data, and computer-generated data. For example, the data source generates point cloud data based on a virtual object (e.g., a virtual three-dimensional object and a virtual three-dimensional scene obtained by three-dimensional modeling).
[0054] The encoder 200 encodes the captured, pre-captured, or computer-generated data. The encoder 200 may rearrange the point cloud data from the order in which it was received (sometimes referred to as the "display order") into an encoding order. The encoder 200 may generate a bitstream including the encoded point cloud data. The source device 100 may then output the encoded point cloud data to the communication medium 120 via the output interface 104 for receipt or retrieval by, for example, the input interface 111 of the destination device 110.
[0055] The memory 102 of the source device 100 and the memory 113 of the destination device 110 represent general memory. In some examples, the memory 102 can store the original data from the data source 101, and the memory 113 can store the decoded point cloud data from the decoder 300. Additionally or alternatively, the memories 102 and 113 can store software instructions that can be executed by, for example, the encoder 200 and the decoder 300, respectively. Although the memory 102 and the memory 113 are shown separately from the encoder 200 and the decoder 300 in this example, it should be understood that the encoder 200 and the decoder 300 can also include internal memory for functionally similar or equivalent purposes. If the encoder 200 and the decoder 300 are deployed on the same hardware device, the memory 102 and the memory 113 can be the same memory. In addition, the memories 102 and 113 can store, for example, the encoded point cloud data output from the encoder 200 and input to the decoder 300. In some examples, portions of memory 102 , 113 may be allocated as one or more point cloud buffers, such as for storing raw, decoded, or encoded point cloud data.
[0056] In some examples, source device 100 may output the encoded data from output interface 104 to memory 113. Similarly, destination device 110 may access the encoded data from memory 113 via input interface 111. Memory 113 or storage 102 may include any of a variety of distributed or locally accessed data storage media, such as a hard drive, a Blu-ray disc, a digital versatile disc (DVD), a compact disc read-only memory (CD-ROM), flash memory, volatile or non-volatile memory, or any other suitable digital storage medium for storing encoded point cloud data.
[0057] The output interface 104 may include any type of medium or device capable of transmitting the encoded point cloud data from the source device 100 to the destination device 110. For example, the output interface 104 may include a transmitter or transceiver, such as an antenna, configured to transmit the encoded point cloud data directly from the source device 100 to the destination device 110 in real time. The encoded point cloud data may be modulated according to a communication standard of a wireless communication protocol and transmitted to the destination device 110.
[0058] The communication medium 120 may include a transient medium, such as a wireless broadcast or a wired network transmission. For example, the communication medium 120 may include a radio frequency (RF) spectrum or one or more physical transmission lines (e.g., cables). The communication medium 120 may form part of a packet-based network (such as a local area network, a wide area network, or a global network such as the Internet). The communication medium 120 may also take the form of a storage medium (e.g., a non-transitory storage medium) such as a hard disk, a flash drive, a compact disk, a digital point cloud disk, a Blu-ray disc, a volatile or non-volatile memory, or any other suitable digital storage medium for storing the encoded point cloud data.
[0059] In some embodiments, the communication medium 120 may include a router, a switch, a base station, or any other device that can be used to facilitate communication from the source device 100 to the destination device 110. For example, a server (not shown) can receive the encoded point cloud data from the source device 100 and provide it to the destination device 110, for example, via a network transmission. The server may include a web server (for example, for a website), a server configured to provide a file transfer protocol service (such as a file transfer protocol (FTP) or a unidirectional file transfer (File Delivery Over Unidirectional Transport, FLUTE) protocol), a content delivery network (CDN) device, a Hypertext Transfer Protocol (HTTP) server, a Multimedia Broadcast Multicast Services (MBMS) or an evolved Multimedia Broadcast Multicast Service (eMBMS) server, or a network-attached storage (NAS) device, etc. The server can implement one or more HTTP streaming protocols, such as MPEG Media Transport (MMT) protocol, Dynamic Adaptive Streaming over HTTP (DASH) protocol, HTTP Live Streaming (HLS) protocol or Real Time Streaming Protocol (RTSP) protocol.
[0060] The destination device 110 can access the encoded point cloud data from the server, for example via a wireless channel (e.g., a Wi-Fi connection) or a wired connection (e.g., a digital subscriber line (DSL), a cable modem, etc.) for accessing the encoded point cloud data stored on the server.
[0061] Output interface 104 and input interface 111 may represent a wireless transmitter / receiver, a modem, a wired networking component (e.g., an Ethernet card), a wireless communication component operating according to the IEEE 802.11 standard or the IEEE 802.15 standard (e.g., ZigBee™), the Bluetooth standard, etc., or other physical components. In examples where output interface 104 and input interface 111 include wireless components, output interface 104 and input interface 111 may be configured to transfer data, such as encoded point cloud data, according to WIFI, Ethernet, a cellular network (such as 4G, LTE (Long Term Evolution), Advanced LTE, 5G, 6G, etc.).
[0062] The technology provided in the embodiments of the present application can be applied to support one or more application scenarios such as the following: machine perception of point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, emergency rescue robots, etc.; human eye perception of point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive communication, and three-dimensional immersive interaction.
[0063] The input interface 111 of the destination device 110 receives an encoded bitstream from the communication medium 120. The encoded bitstream may include high-level syntax elements and encoded data units (e.g., sequences, groups of pictures, pictures, slices, blocks, etc.), wherein the high-level syntax elements are used to decode the encoded data units to obtain decoded point cloud data. The display device 114 displays the decoded point cloud data to the user. The display device 114 may include a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, an organic light-emitting diode (OLED) display, or other types of display devices. In some examples, the destination device 110 may not have a display device 114. For example, if the decoded point cloud data is used to determine the position of a physical object, the display device 114 may be replaced by a processor.
[0064] The encoder 200 and the decoder 300 may be implemented as one or more of various processing circuits, which may include a microprocessor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), discrete logic, hardware, or any combination thereof. When the technology is implemented in whole or in part in software, the device may store instructions for the software in an appropriate non-transitory computer-readable storage medium, and use one or more processors to execute the instructions in hardware to perform the technology provided in the embodiments of the present application.
[0065] The following introduces the basic principles of the encoder 200 and decoder 300 provided in the embodiment of the present application by taking the G-PCC and AVS-PCC encoding and decoding frameworks as examples.
[0066] The encoding and decoding frameworks of G-PCC and AVS-PCC are roughly the same. Figure 2 The encoding flow chart of the encoder based on the AVS-PCC encoding framework is shown as follows: Figure 3 The following is a flow chart showing the encoding performed by an encoder based on the encoding framework of MPEG G-PCC. The encoder may be Figure 1 The encoder 200 shown. The above encoding framework can be roughly divided into a geometric coordinate information encoding process and an attribute information encoding process. In the geometric information encoding process, the geometric coordinate information of each point in the point cloud is encoded to obtain a geometric bit stream; in the attribute information encoding process, the attribute information of each point in the point cloud is encoded to obtain an attribute bit stream; the geometric bit stream and the attribute bit stream together constitute a compressed code stream of the point cloud.
[0067] For the geometric information encoding process, the encoding process performed by the encoder 200 is as follows:
[0068] 1. Pre-Processing: This may include coordinate transformation and voxelization. Pre-processing converts point cloud data in three-dimensional space into integer form through scaling and translation operations, and moves its minimum geometric position to the origin of the coordinates. In some examples, the encoder 200 may not perform pre-processing.
[0069] 2. Geometric coding: For the AVS-PCC coding framework, geometric coding includes two modes, namely, octree-based geometric coding and prediction tree-based geometric coding. For the G-PCC coding framework, geometric coding includes three modes, namely, octree-based geometric coding, trisoup-based geometric coding, and prediction tree-based prediction coding. Among them:
[0070] Octree-based geometric coding: Octree is a tree data structure that evenly divides the pre-set bounding box in three-dimensional space, and each node has eight child nodes. By using "1" and "0" to indicate whether each child node of the octree is occupied or not, the occupancy code information (Occupancy Code) is obtained as the code stream of the point cloud geometry information.
[0071] Geometric coding based on prediction tree: A prediction tree is generated using a prediction strategy, each node is traversed starting from the root node of the prediction tree, and the residual coordinate values corresponding to each traversed node are encoded.
[0072] Geometric coding based on triangle representation: Divide the point cloud into blocks of a certain size and locate the intersection points (called vertices) of the point cloud surface at the edge of the block. Compress the geometric information by encoding whether there are intersection points on each edge of the block and the location of the intersection points.
[0073] 3. Geometry Entropy Encoding: Statistical compression encoding is performed on the occupancy code information of the octree, the prediction residual information of the prediction tree, and the vertex information of the triangle representation, and finally a binary (0 or 1) compressed code stream is output. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal. The commonly used statistical coding method is context-based binary arithmetic coding (Content Adaptive Binary Arithmetic Coding, CABAC).
[0074] 4. Geometry reconstruction: Decode and reconstruct the geometric information after geometry encoding.
[0075] For the attribute information encoding process, the encoding process performed by the encoder 200 is as follows:
[0076] 1. Color transformation: Apply a transformation to transform the color information of an attribute to a different domain. For example, the color information can be transformed from the RGB color space to the YCbCr color space.
[0077] 2. Attribute recoloring: In the case of lossy encoding, after the geometric coordinate information is encoded, the encoder needs to decode and reconstruct the geometric information, that is, restore the geometric information of each point in the point cloud. Find the attribute information corresponding to one or more neighboring points in the original point cloud as the attribute information of the reconstructed point.
[0078] In some examples, encoder 200 may not perform color conversion or attribute recoloring.
[0079] 3. Attribute information processing: In AVS-PCC, attribute information processing can include three modes, namely prediction coding, transform coding and prediction & transform coding. These three coding modes can be used under different conditions.
[0080] Among them, predictive coding refers to determining the neighboring points of the point to be coded as the prediction points among the coded points based on information such as distance or spatial relationship, and calculating the predicted attribute information of the point to be coded based on the attribute information of the prediction points based on the set criteria. The difference between the real attribute information and the predicted attribute information of the point to be coded is calculated as the attribute residual information, and the attribute residual information is quantized, transformed (optional) and entropy coded.
[0081] Transform coding refers to the use of transformation methods such as Discrete Cosine Transform (DCT) and Haar Transform (Haar) to group and transform attribute information and quantize transform coefficients; obtain attribute reconstruction information through inverse quantization and inverse transformation; calculate the difference between the real attribute information and the attribute reconstruction information to obtain attribute residual information and quantize it; and entropy code the quantized transform coefficients and attribute residuals.
[0082] Predictive transform coding refers to using the attribute residual information obtained by prediction to transform, quantize and entropy code the transform coefficients.
[0083] In MPEG G-PCC, attribute information processing may include three modes, namely, prediction transform (PredictionTransform) coding, lifting transform (Lifting Transform) coding, and hierarchical region adaptive transform (RegionAdaptive Hierarchical Transform, RAHT) coding, and these three coding modes can be used under different conditions.
[0084] Among them, predictive transform coding refers to selecting sub-point sets according to distance, dividing the point cloud into multiple different levels (Level of Detail, LoD), and realizing multi-quality hierarchical point cloud representation from coarse to fine. Bottom-up prediction can be realized between adjacent layers, that is, the attribute information of the points introduced in the fine layer is predicted by the neighboring points in the coarse layer to obtain the corresponding attribute residual information. Among them, the points in the lowest layer are encoded as reference information.
[0085] Lifting transform coding refers to introducing a weight update strategy for neighborhood points based on the prediction of adjacent layers of LoD, and ultimately obtaining the predicted attribute information of each point and the corresponding attribute residual information.
[0086] Hierarchical region adaptive transform coding means that the attribute information is transformed into a transform domain through RAHT transform, which is called transform coefficient.
[0087] 4. Attribute Quantization: The degree of quantization is usually determined by the quantization parameter. The transform coefficients or attribute residual information obtained by attribute information processing are quantized, and the quantized results are entropy coded. For example, in predictive transform coding and lifting transform coding, the quantized attribute residual information is entropy coded; in RAHT, the quantized transform coefficients are entropy coded.
[0088] 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 entropy encoders.
[0089] 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.
[0090] Figure 4 A decoding flowchart of a decoder based on the AVS-PCC decoding framework is shown, Figure 5 A decoding flow chart of a decoder based on the decoding framework of MPEG G-PCC is shown, and the above decoder may be Figure 1Decoder 300 is shown. After receiving the compressed code stream (i.e., attribute bit stream and geometry bit stream) transmitted by encoder 200, decoder 300 decodes the geometry bit stream to reconstruct the geometric coordinate information of each point in the point cloud, and decodes the attribute bit stream to reconstruct the attribute information of each point in the point cloud.
[0091] The decoding process performed by the decoder 300 is as follows:
[0092] 1. Entropy Decoding: Entropy decoding is performed on the geometry bit stream and the attribute bit stream respectively to obtain geometry syntax elements and attribute syntax elements.
[0093] 2. Geometric decoding: For the AVS-PCC coding framework, geometric decoding includes two modes, namely, octree-based geometric decoding and prediction tree-based geometric decoding. For the G-PCC coding framework, geometric coding includes three modes, namely, octree-based geometric decoding, trisoup-based geometric decoding, and prediction tree-based prediction decoding.
[0094] Octree-based geometry decoding: The octree is reconstructed based on the geometry syntax elements parsed from the geometry bitstream.
[0095] Prediction tree-based geometry decoding: The prediction tree is reconstructed based on the geometry syntax elements parsed from the geometry bitstream.
[0096] Geometry decoding based on triangle representation: Reconstruct the triangle model based on the geometry syntax elements parsed from the geometry bitstream.
[0097] 3. Geometric reconstruction: Perform reconstruction to obtain the geometric coordinate information of the points in the point cloud.
[0098] 4. Coordinate inverse transformation: The reconstructed geometric coordinate information is inversely transformed to convert the reconstructed coordinates (positions) of the points in the point cloud from the transformed domain back to the initial domain.
[0099] 5. Dequantization: Dequantize the attribute syntax elements.
[0100] 6. Attribute information processing: In AVS-PCC, attribute information processing determines the color information of the midpoint in the point cloud by predicting or predicting the prediction residual or prediction residual transformation coefficient after inverse quantization, or by transforming the inverse quantized transformation coefficient to determine the color information of the midpoint in the point cloud.
[0101] In MPEG G-PCC, attribute information processing determines the color information of the point in the point cloud by RAHT for the inverse quantized attribute information, or determines the color information of the point in the point cloud by LOD and inverse lifting for the inverse quantized attribute information.
[0102] 7. Color inversion: Convert color information from the YCbCr color space to the RGB color space. In some examples, the color inversion operation may not be performed.
[0103] The following is a description of the technologies related to the embodiments of the present application.
[0104] In the point cloud G-PCC encoder framework, the geometric information and attribute information of the point cloud are encoded separately. Figure 1 As shown, the current attribute coding of G-PCC can be divided into regional adaptive transformation based on upsampling prediction ( Figure 6 and Figure 7 The dotted box in the middle) and the lifting transformation based on hierarchical structure division ( Figure 6 and Figure 7 The dotted line part) and the prediction transformation based on the hierarchical structure division.
[0105] The region adaptive transformation based on upsampling prediction includes: first, constructing a transformation tree structure. Starting from the bottom layer, an octree structure is constructed from the bottom to the top. In the process of constructing the transformation tree, it is necessary to generate corresponding Morton code information, attribute information and weight information for the merged nodes. Then, upsampling prediction and region adaptive transformation (RAHT) are performed layer by layer from the root node from top to bottom. If the current node is a root node, no upsampling prediction is performed, and the attribute information of the node is directly subjected to RAHT transformation, and then the DC coefficient and AC coefficient obtained by the transformation are quantized and entropy encoded. If it is not a root node, whether to predict the current node is determined based on the number of grandparent nodes and parent nodes. If prediction is required, for the current node to be coded, select the parent node of the current child node to be coded, the neighboring parent node coplanar and colinear with the current child node to be coded, and the neighboring child node coplanar and colinear with the current child node to be coded for its child nodes to perform weighted prediction to obtain the attribute prediction value of the current child node to be coded, and then perform RAHT transformation on the attribute prediction value and the original attribute value of the current node to be coded, calculate the AC coefficient residual, and quantize and entropy encode the AC coefficient residual. If prediction is not required, directly perform RAHT transformation on the original attribute value of the current node to be coded, quantize and entropy encode the obtained AC coefficient, and finally obtain the attribute code stream.
[0106] The lifting transformation based on hierarchical structure division includes: first, determining the order of the points in the point cloud to be encoded according to the space filling curve based on the geometric information of the point cloud to be encoded, and the order includes but is not limited to the Morton order or the Hilbert order. A specific embodiment is: based on the coordinate information of the point cloud to be encoded, the Morton code corresponding to each point is calculated and sorted in ascending order. Specifically, first, the variable P is usedi Represents a point in the input point cloud, variable M i For P i The related Morton code, where i = 1, 2, ..., N. Each dimension component of the geometric three-dimensional coordinates x, y, z of the point is represented by a d-bit binary number:
[0107]
[0108] Among them, x l ,y l ,z l ∈{0,1} are the binary values corresponding to the highest bit (l=1) to the lowest bit (l=d) of x, y, and z respectively. l y l z l x l+1 y l+1 z l+1 ...are arranged crosswise to the lowest bit, and the calculation formula of the Morton code M is as follows:
[0109]
[0110] Among them, m l' ∈{0,1} are the values of the highest bit (l'=1) to the lowest bit (l'=3d) of M. After obtaining the Morton code M of each point in the point cloud, the points are rearranged in the order of the Morton code from small to large.
[0111] The point cloud to be encoded is then divided into levels of detail (LoD) in a sampling manner based on the information after geometric sorting, including but not limited to distance, sampling rate and octree structure, so as to establish a hierarchical structure of the point cloud. In some specific embodiments, the division method based on the sampling rate is such as: in order to divide the point cloud into four levels of detail, the index of the points obtained by sorting the Morton value can be sampled at a rate of y times, and one point in each y indexes is divided into a refinement level, and the rest are sampled into the lowest level LOD0. For each additional level of refinement, the remaining points in the point index that have not been sampled continue to be sampled at a rate of y times, and one point in each y indexes is divided into a new refinement level, and the rest are sampled into the detail level LOD1. Iterate in this way until all points are sampled to obtain the highest level of detail LOD N , thereby constructing the final LOD structure of the point cloud.
[0112] Then, the nearest neighbors of the points to be encoded are found from the already encoded and reconstructed points based on the geometric information, so as to predict the points to be encoded and realize progressive encoding.
[0113] The points at the lower level and the reconstructed points at the same level can be used to predict the points at the higher level, and the points at the lower level and the same level can be used as reference points. m The points to be coded in (m=1,2,...,N-1, N is the total number of LOD divisions) are from LOD0 to LOD m-1 The coded points in the layer are used as the reference set. First, a certain range of points are searched in the point set, the geometric distance between each point and the point to be coded is calculated, and the K points with the closest geometric distance are selected to construct the prediction point set of the current point to be coded. Then, the LOD m That is, the coded points in the same level are used as the reference set, and a certain range of points are searched in the point set, and the geometric distance between each point and the point to be coded is calculated. Finally, the K points with the closest geometric distance to the point to be coded among all the reference points are selected as the prediction point set of the point to be coded. The point to be coded in LOD0 uses the coded points in LOD0 as the reference point to find the nearest neighbor within a certain range. The above search ranges are all related to the position of the current point to be coded.
[0114] In the case of multi-frame point clouds, the nearest neighbors of the current point to be encoded can also be found from the reconstructed points in the encoded frames to perform attribute prediction. A specific implementation example can be: let the Morton code of the current point to be encoded be q, and find the first point whose Morton code is greater than or equal to q in the previous encoded frame according to the point index order of the frame. Take all points in the LOD level where the point is located as the reference point set, search for points within a certain range, calculate the geometric distance between each point and the point to be encoded, and compare the distance with the neighboring points found in the same frame to select the final K prediction points.
[0115] Due to the complexity of point cloud distribution, the current search for the nearest neighbor not only needs to consider the distance problem, but also needs to determine the orientation distribution after finding the K neighboring points of the point to be encoded, so that the neighbor distribution can be multi-directional to improve the prediction accuracy. The relevant methods are as follows:
[0116] First, list1 contains K nearest neighbors obtained using the existing GPCC neighbor search method, and list2 contains N points that are discarded in the process of updating the nearest neighbors, for example, N = 3. The process of generating list1 and list2 is as follows: Figure 8 As shown:
[0117] If the points in list1 do not meet the strict orientation requirements of P1 and P2, P1 and P0, and P2 and P0 in the figure, it means that the neighbor distribution is not wide enough. Therefore, it is necessary to search list2 in order according to the candidate point sorting of list2 to see if there are candidate points in list2 that are strictly opposite to the points in list1. If they exist and meet certain geometric distance restrictions, stop searching and use them to update the nearest neighbor point in list1 that is farthest from the current point to be encoded. If they do not exist, and the points in list1 meet the requirements of at least one pair of points in P1 and P2, P1 and P0, and P2 and P0 in the figure, there is no need to update the farthest nearest neighbor; otherwise, it is necessary to search list2 in order according to the candidate point sorting of list2 to see if there are candidate points in list2 that are wide opposite to the points in list1. If they exist and meet certain geometric distance restrictions, stop searching and use them to update the nearest neighbor point in list1 that is farthest from the current point to be encoded. The points in the above list2 are only checked for their azimuth relationship with the nearest neighbor points in list1 that do not contain the farthest point. The certain geometric distance restrictions are met in order to prevent candidate points that are too far from the current point to be encoded from replacing the farthest nearest neighbor points in list1, otherwise the prediction performance will be affected. As shown in the figure, check whether there are points in list2 that are relative to P0 or P1 in list1. For example: in list2, there is Pn and P0 that are relative in azimuth distribution, which can be wide relative or strict relative, and dist(Pn,p)<=w*dist(P2,p), dist(Pn,p) represents the geometric information distance between Pn and the current point to be encoded p, and dist(P2,p) represents the geometric information distance between P2 and the current point to be encoded p, then Pn is used instead of P2. The above w<<5=54. In some specific instances, the azimuth is determined as follows: Fig. 9 As shown:
[0118] Finally, the K neighboring points selected based on the geometric information are used as prediction points, and the reconstructed attribute values of the K nearest neighbors are used for linear interpolation prediction to obtain the attribute prediction value of the point to be predicted, where K is a configurable parameter of the encoder and is included in the bit stream generated by the encoder so that the decoder can recognize it. Specifically, the encoder can use the following formula to predict the attribute information of the point to be predicted:
[0119]
[0120] Among them, A i is the predicted value of the attribute of the current point, K is the number of adjacent points, A j Reconstruct the values of the attributes of the adjacent points, w j is the corresponding weight coefficient, which is generally given by the following formula:
[0121]
[0122] Among them, a ij is the distance between the adjacent point and the point to be predicted, f(a ij ) is the same as a ij That is, according to the distance between each neighboring point and the point to be predicted, the correlation weakens as the distance increases, so a larger weight is given to the attribute reconstruction value of the neighboring point with a smaller distance.
[0123] The lifting transformation includes three parts: segmentation, prediction, and update. The segmentation stage spatially segments the input point cloud data into two parts: high-level point cloud and low-level point cloud. In the prediction stage, the attribute information of the low-level point cloud is used to predict the attribute information of the high-level point cloud to obtain the prediction residual. In the process of segmentation and prediction, due to the prediction strategy in the LOD division, the points in the lower LOD layer are used for prediction more times and have higher weights. Therefore, 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, so as to update the prediction residual, and use the influence weight calculated in the transformation process to adaptively quantize the updated prediction residual (low-impact, that is, the fewer times the point is regarded as the nearest neighbor, the more highly quantized the attribute residual value is, in order to improve the compression efficiency, high-impact, that is, the more times the point is regarded as the nearest neighbor, the more the attribute residual value is, the more low-quantized the attribute residual value is, in order to improve the encoding quality), and finally the quantized residual is entropy encoded to obtain the attribute code stream.
[0124] The prediction transformation based on hierarchical structure division includes: Compared with the above-mentioned lifting transformation based on hierarchical structure, it only includes two parts: segmentation and prediction, and does not include update. In order to further improve the efficiency of point cloud attribute prediction, rate-distortion optimization technology (RDO) is introduced. Rate-distortion optimization is used to select the prediction mode with the best performance. Before predicting the attribute value of the current point to be encoded, the maximum difference in the attribute value of its corresponding nearest neighbor point is calculated. If the maximum difference between the attributes is greater than the set threshold, rate-distortion optimization can be applied. Calculate the prediction value obtained when each neighbor point is used alone and the prediction value obtained when all neighbor points are used weightedly, and correspond to different prediction modes respectively, and select the prediction mode through the rate-distortion method. Finally, the selected prediction mode and the quantized residual are jointly encoded into the bitstream of the attribute information. In some embodiments, if the rate-distortion optimization process is not specified in the encoded bitstream, the decoder can apply the default prediction mode, that is, the weighted average mode of the neighbor points.
[0125] The following, in conjunction with the accompanying drawings, describes in detail the encoding, decoding methods, devices and electronic devices provided in the embodiments of the present application through some embodiments and their application scenarios.
[0126] like Fig.10 As shown, the embodiment of the present application provides an encoding method, including:
[0127] Step 1001: The encoder obtains first residual information of a first attribute of a point to be encoded, where the first residual information is determined based on a second attribute of the point to be encoded;
[0128] The second attribute is an encoded attribute, the first attribute is an attribute to be encoded, and the attribute types of the first attribute and the second attribute are different.
[0129] Optionally, the second attribute may be one attribute, or may be two or more attributes.
[0130] The attribute types mentioned in the embodiments of the present application may include but are not limited to the color and reflectivity of the point cloud; for example, the first attribute may be color, and the second attribute may be reflectivity.
[0131] Step 1002: The encoding end generates a target bitstream according to the first residual information.
[0132] It should be noted that in the embodiment of the present application, the residual of the attribute to be encoded is obtained by adopting an encoded attribute of a different type from the attribute to be encoded of the point to be encoded, so as to achieve cross-attribute prediction, and the encoded second attribute is fully considered in the process of encoding the first attribute, thereby reducing information redundancy in the code stream and achieving efficient attribute de-redundancy, thereby reducing the bit rate and improving the coding efficiency.
[0133] Optionally, in one implementation, the specific implementation of obtaining the first residual information of the first attribute of the point to be encoded includes:
[0134] Step S11, the encoding end obtains an attribute prediction value of a first attribute of the to-be-encoded point, wherein the attribute prediction value is determined based on a second attribute of the to-be-encoded point;
[0135] Step S12: the encoder determines first residual information of a first attribute of the point to be encoded according to the attribute prediction value.
[0136] It should be noted that in this case, the second attribute of the point to be encoded is used to predict the attribute of the first attribute, which can make the attribute prediction more accurate, and then the residual information is obtained based on the predicted attribute. The residual information is the information that needs to be encoded into the target code stream.
[0137] The specific implementation of step S11 is described in detail below.
[0138] Case 1: Attribute prediction is performed through the nearest neighbor point to improve the attribute correlation between the point to be encoded and the neighbor point, thereby improving the encoding efficiency.
[0139] Optionally, in one implementation, the specific implementation of step S11 includes:
[0140] Step S1101, when the encoder determines to use cross-attribute prediction for the first attribute, obtains a comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set, where the comprehensive distance is determined according to a second attribute of the point to be encoded and a second attribute of the neighbor point;
[0141] It should be noted that the first prediction point set includes K neighbor points of the to-be-encoded point. For example, the first prediction point set may be composed of K neighbor points screened out based on geometric information in the LOD structure. The specific screening method may refer to the description of the related technology of the present application mentioned above, which will not be repeated here. Of course, other acquisition methods may also be used to obtain the first prediction point set in the embodiment of the present application. It should be noted that the embodiment of the present application does not impose too many restrictions on how to obtain the first prediction point set, and any method that can obtain the first prediction point set belongs to the protection scope of the present application.
[0142] It should be noted that the comprehensive distance refers to a distance determined by the geometric distance between the point to be coded and each neighbor point and the attribute distance. This comprehensive distance can reflect the magnitude of the correlation between the point to be coded and each neighbor point.
[0143] Optionally, in one implementation, the specific implementation of this step includes:
[0144] Step S11011, the encoding end obtains the geometric distance between the point to be encoded and each neighbor point in the first prediction point set;
[0145] Optionally, in the embodiment of the present application, the geometric distance can be obtained by formula one.
[0146] Formula 1, geomDis=dis(geomCur,geomNeighbour);
[0147] Among them, geomCur represents the geometric position of the point to be encoded; geomNeighbour represents the geometric position of a neighbor point. The spatial dimensions represented by the geometric position include but are not limited to the Cartesian coordinates, spherical coordinates, cylindrical coordinates, etc. of the point cloud. The function dis(geomCur, geomNeighbour) represents the calculation of the distance between geomCur and geomNeighbour. For example, the distance can be the Euclidean distance or the Manhattan distance.
[0148] It should be noted that in this step, the number of geometric distances obtained depends on the number of neighbor points included in the first prediction point set; for example, if the first prediction point set includes K neighbor points, the encoding end will determine the geometric distance between a point to be encoded and this neighbor point for each neighbor point, so the encoding end will obtain K geometric distances.
[0149] Step S11012, the encoder obtains an attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set;
[0150] Optionally, in one implementation, the specific implementation of this step includes:
[0151] The encoder determines the attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set based on the number of components included in the second attribute and the weight of each component when calculating the attribute distance.
[0152] It should be noted that by acquiring the attribute distance based on the number of components and the weights of the components, it is possible to ensure that the encoding end can accurately acquire the attribute distance.
[0153] Optionally, in the embodiment of the present application, the attribute distance can be obtained by formula 2.
[0154] Formula 2, attrDis=dis(attrCur,attrNeighbour);
[0155] Among them, attrCur represents the attribute information of the second attribute of the point to be encoded; attrNeighbour represents the attribute information of the second attribute of a neighbor point. The attribute information includes but is not limited to the color and reflectivity of the point cloud. The function dis(attrCur, attrNeighbour) represents the calculation of the attribute distance between attrCur and attrNeighbour. For example, the attribute distance can be the Euclidean distance or the Manhattan distance.
[0156] Optionally, a specific method for obtaining the attribute distance in the embodiment of the present application is as shown in Formula 3:
[0157] Formula 3:
[0158] Among them, dimAttr represents the number of components of the second attribute, which can also be understood as the number of components contained in the attribute information of the second attribute. attrCur[i] represents the i-th component of the second attribute of the point to be encoded; attrNeighbor[i] represents the i-th component of the second attribute of a neighbor point; wAttr[i] represents the weight of the i-th component of the second attribute when calculating the attribute distance.
[0159] Step S11013, the encoder determines the comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance;
[0160] It should be noted that by obtaining the comprehensive distance based on the geometric distance and the attribute distance, the encoding end can consider the correlation between different types of attributes when predicting attributes based on neighboring points, thereby improving the encoding efficiency.
[0161] Optionally, in one implementation, the specific implementation of this step includes:
[0162] The encoding end determines a comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set according to the geometric distance, the weight corresponding to the geometric distance, the attribute distance, and the weight corresponding to the attribute distance.
[0163] It should be noted that by calculating the comprehensive distance based on the distance and the weight of the distance, it is possible to ensure that the encoding end accurately obtains the comprehensive distance, thereby ensuring the accuracy of attribute prediction.
[0164] Optionally, in the embodiment of the present application, the comprehensive distance can be obtained by formula 4.
[0165] Formula 4:
[0166] Among them, overalldis represents the comprehensive distance, geomdis represents the geometric distance, and attrW[i] represents the attribute distance of the i-th second attribute. codedAttrNum represents the number of second attributes. attrW[i] represents the weight of the attribute distance corresponding to the i-th second attribute in the comprehensive distance calculation. (attrW[i]>=0). If attrW[i]=0, it means that the first attribute does not refer to this encoded attribute. For example, in a specific embodiment of the embodiment of the present application, only one encoded attribute is referenced, such as the current attribute to be encoded is A, and the encoded attributes are B, C, and D. When the weights attrW[c] and attrW[d] of C and D are 0 when calculating the attribute distance, it means that the attributes C and D are not referenced.
[0167] Among them, attrW[i] can be obtained according to formula 5:
[0168] Formula 5, attrW[i]=k·attrQuantParam+b;
[0169] Among them, k and b are arbitrary real numbers, and attrQuantParam represents the attribute quantization parameter.
[0170] It should be noted that, through the above calculation process, the encoder will obtain a comprehensive distance for each neighbor point in the first prediction point set.
[0171] Step S1102: the encoder reorders neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set;
[0172] Optionally, in one implementation, the encoding end reorders neighbor points in the first prediction point set in ascending order based on the comprehensive distance to obtain a second prediction point set.
[0173] It should be noted that after calculating the comprehensive distances between the K neighbor points in the first prediction point set and the point to be encoded, the list of nearest neighbor points is updated by comparing the comprehensive distances, that is, the K neighbor points in the first prediction point set of the point to be encoded are reordered in ascending order of the comprehensive distances to obtain the reordered second prediction point set; it should be noted that the second prediction point set contains the same neighbor points as the first prediction point set, but the comprehensive distance sorting is different, which will affect the weight value of each neighbor point in the subsequent attribute prediction.
[0174] Step S1103: the encoder determines an attribute prediction value of the first attribute of the to-be-encoded point based on the second prediction point set;
[0175] Optionally, in one implementation, the specific implementation of this step includes:
[0176] The encoder determines, based on the reconstructed attribute value of the first attribute of each neighbor point in the second prediction point set and a weight coefficient, an attribute prediction value of the first attribute of the point to be encoded;
[0177] The weight coefficient of the neighbor node is determined by the comprehensive distance between the neighbor node and the point to be encoded.
[0178] It should be noted that by determining the weight coefficient based on the comprehensive distance, it is possible to ensure that the weights of the obtained neighbor points are more accurate, thereby ensuring the accuracy of the attribute prediction.
[0179] Optionally, the weight coefficient can be obtained by formula 6:
[0180] Formula 6:
[0181] Among them, w j represents the weight coefficient, d ij is the comprehensive distance between a neighboring point and the point to be coded, f(d ij ) is equal to d ij That is, according to the comprehensive distance between each neighbor point and the point to be encoded, the correlation weakens as the comprehensive distance increases. Therefore, a larger weight is given to the reconstructed attribute value of the neighbor point with a smaller comprehensive distance, and a smaller weight is given to the reconstructed attribute value of the neighbor point with a larger comprehensive distance.
[0182] Optionally, the attribute prediction value of the first attribute of the to-be-coded point can be obtained by Formula 7:
[0183] Formula 7:
[0184] Among them, predAttr represents the attribute prediction value of the first attribute of the point to be encoded, nearestNeighNum represents the number of nearest neighbor points finally selected for predicting the point to be encoded, and reconAttr[i] represents the reconstructed attribute value of the first attribute of the i-th nearest neighbor point.
[0185] It should be noted that after obtaining the attribute prediction value, the first residual information of the first attribute can be obtained based on the original information of the first attribute and the attribute prediction value. Usually, the first residual information can be obtained by subtracting the attribute prediction value from the original information of the first attribute. The first residual information can be encoded into the target code stream to achieve information encoding.
[0186] Optionally, in one implementation, the target bitstream includes: first indication information and second indication information, the first indication information is used to indicate whether the encoding end uses inter-attribute type prediction, and the second indication information is used to indicate whether the first attribute uses cross-attribute prediction.
[0187] Specifically, whether the encoder uses inter-attribute prediction and whether to use cross-attribute prediction for the first attribute can be pre-configured or determined by the encoder based on implementation; for example, if there are different types of attributes that have been encoded before encoding the current attribute, then the current attribute to be encoded can use cross-attribute prediction, that is, different types of encoded attributes are introduced into the attribute prediction to measure the correlation between the point to be encoded and the neighboring points, so as to improve the attribute encoding efficiency.
[0188] Typically, after receiving a target code stream, a decoding end decodes the received target code stream and obtains first indication information; when the first indication information is used to indicate that the encoding end uses inter-attribute type prediction, the decoding end obtains second indication information in the target code stream; when the second indication information is used to indicate that the first attribute uses inter-attribute prediction, the decoding end determines to use inter-attribute prediction for the first attribute.
[0189] Optionally, the decoding end also needs to determine the attribute prediction value of the first attribute in the same manner as the encoding end. For details, please refer to the above description, which will not be repeated here.
[0190] The specific application examples of the above situation are described below.
[0191] Specific implementation scheme of the encoding end:
[0192] First, the enable flag cross_attr_prediction_enabled_flag for inter-attribute prediction is introduced in the sequence parameter set, i.e., the first indication information, to control whether the codec turns on inter-attribute prediction. When the flag is enabled (for example, the flag is 1), cross_attr_type_prediction_enabled_flag, i.e., the second indication information, is introduced in the attribute parameter set corresponding to each attribute to be encoded, to control whether the attribute can use cross-attribute prediction. If there are different types of attributes that have been encoded before encoding the current attribute, then the current attribute to be encoded can use cross-attribute prediction, i.e., different types of attribute information that have been encoded are introduced in the attribute prediction to measure the correlation between the point to be predicted and the neighboring points, so as to improve the attribute coding efficiency.
[0193] When cross_attr_type_prediction_enabled_flag is enabled, attrRefIdx is introduced in the attribute parameter set of the current attribute to be encoded to indicate which different types of encoded attributes are used for predictive encoding of the current attribute to be encoded, where attrRefIdx represents the encoded attributes appearing in the bitstream. The order of the current attribute to be encoded among all attributes must be greater than the order of the encoded attributes indicated by attrRefIdx, that is, the attributes referenced by the cross-attribute prediction must be already encoded attributes. Fig.11 As shown, the specific encoding method is described as follows:
[0194] Step 1: Obtain a second prediction point set based on geometric information and attribute information.
[0195] Input: The first prediction point set consisting of K neighbor points of the point to be encoded in the LOD structure selected based on geometric information.
[0196] Output: The second predicted point set obtained by updating the point to be encoded based on the geometric information and attribute information.
[0197] The specific steps include:
[0198] Step 1: Calculate the comprehensive distance.
[0199] Input: geometric reconstruction information of the point to be encoded and its corresponding first prediction point set, as well as reconstruction information of different attribute types that have been encoded in the previous order.
[0200] Output: The comprehensive distance between the point to be encoded and each neighboring point in the first prediction point set.
[0201] The specific implementation includes:
[0202] Traverse the K nearest neighbor points in the first prediction point set, and calculate the geometric distance (geomDis) between each neighbor point and the current point to be encoded. Specifically, the geometric distance is obtained by the above formula 1.
[0203] At the same time, the attribute distances (attrDis) of different types encoded in the preceding order of each neighbor point and the current point to be encoded are calculated. The attribute distance can be obtained by the above formula 3.
[0204] After obtaining the attribute distance and geometric distance, the comprehensive distance is calculated by combining the two to strengthen the correlation of attribute information between the current point and the neighboring points and improve the prediction performance. The comprehensive distance (overallDis) can be obtained by the above formula 4.
[0205] Step 2: Update the first prediction point set.
[0206] Input: The first prediction point set corresponding to the point to be encoded.
[0207] Output: The second set of prediction points after the points to be encoded are sorted.
[0208] After calculating the comprehensive distances between the K neighbor points and the current point to be encoded, the nearest neighbor point list is updated by comparing the comprehensive distances, that is, the first prediction point set of the point to be encoded is reordered in ascending order of the comprehensive distances to obtain the second prediction point set.
[0209] Step 2: Calculate attribute prediction values.
[0210] Input: The reconstructed attribute values of the nearest neighbor points of the same type.
[0211] Output: predicted attribute value of the point to be coded.
[0212] The K nearest neighbor points that are finally selected for prediction have their weight coefficients determined by the size of the comprehensive distance, so as to perform a weighted average of the attribute values to obtain the attribute prediction value of the point to be encoded. In some specific instances, such as in the prediction transformation, if it is determined that the maximum difference between the current attribute to be encoded between the point to be encoded and the nearest neighbor point exceeds a certain threshold, only one of the nearest neighbor points can be selected for prediction based on the rate-distortion criterion, and its attribute reconstruction value will be used as the prediction value of the current point to be encoded; if the maximum difference between the current attributes to be encoded does not exceed the threshold or in the lifting transformation, the reconstructed attribute values of the nearest neighbors are weighted and calculated to obtain the attribute prediction value of the current point to be predicted. The attribute prediction value can be obtained through the above formula 7.
[0213] Step 3: Calculate attribute residuals and perform entropy coding.
[0214] Input: The predicted attribute value of the point to be coded and the original attribute information (i.e. the original attribute value).
[0215] Output: target bitstream including attribute residual coded values.
[0216] After obtaining the attribute prediction value of the current point to be encoded, it is verified with the corresponding attribute value of the point in the original non-compressed point cloud (such as the captured point cloud) to obtain the attribute residual, that is, the first residual information. The above verification process can be to subtract the predicted value from the original value to obtain the attribute residual, and quantize the finally determined attribute residual. In the above lifting transformation method, the obtained attribute residual is to be updated to determine the final attribute residual, and the final residual is adaptively quantized, so that the attribute residual value of the point with low influence, that is, the less times it is regarded as the nearest neighbor point, is more highly quantized to improve the compression efficiency; the attribute residual value of the point with high influence, that is, the more times it is regarded as the nearest neighbor point, is more low quantized to improve the encoding quality. In the encoding method of selecting the prediction mode using the rate-distortion method, the prediction mode corresponding to each point and the quantized attribute residual are jointly encoded, and then the combined value is entropy encoded to be compressed into the target bitstream. The entropy coding type includes but is not limited to arithmetic coding technology and exponential Golomb coding technology.
[0217] Correspondingly, the implementation process of the decoding end is:
[0218] The decoding end first parses and obtains the target bitstream (i.e., the binary bitstream) to obtain the multi-attribute type prediction enable flag cross_attr_prediction_enabled_flag in the sequence parameter set. When the flag is enabled (for example, the flag is 1), the flag cross_attr_type_prediction_enabled_flag in the attribute parameter set corresponding to each attribute to be decoded is parsed. When cross_attr_type_prediction_enabled_flag is enabled (for example, the flag is 1), the attrRefIdx of the attribute type required to be referenced by the current attribute is parsed. When the above information is parsed, the following decoding process is performed:
[0219] Step 1: Construct the second prediction point set.
[0220] Input: The first prediction point set of the point to be decoded constructed based on geometric information in the LOD structure.
[0221] Output: The second predicted point set obtained by updating the point to be decoded based on the geometric information and attribute information.
[0222] Step 1: Calculate the comprehensive distance.
[0223] Input: geometric reconstruction information of the point to be decoded and its corresponding first prediction point set, and the decoded reconstruction information of different attribute types.
[0224] Output: The comprehensive distance between the point to be decoded and each neighboring point in the first prediction point set.
[0225] Traverse the K nearest neighbor points in the first prediction point set, and calculate the geometric distance (geomDis) between each neighbor point and the current point to be decoded. The geometric distance is obtained by the above formula 1.
[0226] At the same time, the attribute distances (attrDis) of different types that have been decoded before each neighbor point and the current point to be decoded are calculated. The attribute distance can be obtained by the above formula 3.
[0227] After obtaining the attribute distance and geometric distance, the comprehensive distance is calculated by combining the two to strengthen the correlation of attribute information between the current point and the neighboring points and improve the prediction performance. The comprehensive distance (overallDis) can be obtained by the above formula 4.
[0228] Step 2: Update the first prediction point set.
[0229] Input: the first prediction point set corresponding to the point to be decoded.
[0230] Output: The second prediction point set after the points to be decoded are sorted.
[0231] After calculating the comprehensive distances between the K neighbor points and the current point to be decoded, the nearest neighbor point list is updated by comparing the comprehensive distances, that is, the first prediction point set of the point to be decoded is reordered in ascending order of the comprehensive distances to obtain the second prediction point set.
[0232] Step 2: Get the true prediction residual of the point to be decoded.
[0233] Input: The target code stream corresponding to the attribute.
[0234] Output: the first residual information of the point to be decoded.
[0235] The attribute code stream including the initial attribute residual value of the point is entropy decoded to obtain the initial attribute residual of the point, that is, the first residual information, wherein the entropy decoding type includes but is not limited to arithmetic decoding technology and exponential Golomb decoding technology. In the lifting transformation, the initial attribute residual is dequantized and then subjected to a lifting inverse transformation to obtain the original attribute residual value of the point to be decoded. In some specific instances, it is also necessary to calculate the prediction mode and the original prediction residual value of the point to be decoded by decoding the initial attribute residual, and use the dequantized residual for subsequent prediction reconstruction.
[0236] Step 3: Calculate the predicted value and the reconstructed value.
[0237] Input: The reconstructed attribute value of the same type of the nearest neighbor point and the first residual information of the point to be decoded.
[0238] Output: reconstructed attribute value of the point to be decoded.
[0239] According to the prediction mode corresponding to the current point to be decoded, the nearest neighbor point for prediction is selected. The prediction weight of each nearest neighbor point is determined by the size of the comprehensive distance, so as to obtain the attribute prediction value of the current point to be decoded by weighted average. The reconstructed attribute values of the nearest neighbor points are weighted summed according to the weights to obtain the attribute prediction value (predAttr) of the current point to be predicted. The attribute prediction value can be obtained by the above formula 7.
[0240] If the neighbor point selected for prediction is only one of the points in the nearest neighbor point set, then the reconstructed attribute value of the same type can be directly used as the predicted value of the current point to be decoded.
[0241] Then, the first residual information of the point is applied to the attribute prediction value of the current point to be decoded to obtain the reconstructed attribute value of the point, thereby achieving decoding.
[0242] It should be noted that this implementation method can improve the attribute correlation between the point to be encoded and the neighboring points, and improve the encoding efficiency; accordingly, the decoding end can also improve the decoding efficiency.
[0243] Case 2: Utilize the correlation fitting between different types of attributes to obtain the attribute prediction value.
[0244] Optionally, in one implementation, the specific implementation of step S11 includes:
[0245] Step S1111, the encoding end determines a first objective function according to the second attribute of the reference point set of the to-be-encoded point and the original information of the first attribute;
[0246] It should be noted that, by fitting the encoded attributes of the points in the reference point set and the original information of the attributes to be encoded, a first objective function can be determined, wherein the parameter information in the first objective function is determined by fitting. Optionally, the reference point set of the points to be encoded refers to the reference point set corresponding to the points to be encoded. It should be noted that, in order to improve the fitting accuracy, optionally, in the embodiment of the present application, the first objective function is obtained by adopting a segmented fitting method; for example, including 10,000 points, these points are segmented, each segment includes 1,000 points, and the corresponding reference point set is the point set corresponding to which segment the points to be encoded belong to. Optionally, the reference point set may include points to be encoded, points whose first attributes are not encoded, and points whose second attributes are encoded.
[0247] It should be noted that the original information refers to the attribute information of the original point cloud, that is, the original value of the first attribute and the original information of the second attribute.
[0248] Step S1112: The encoder determines a predicted attribute value of the first attribute of the point to be encoded according to the first objective function and the reconstructed attribute value of the second attribute of the point to be encoded.
[0249] It should be noted that the reconstructed attribute value of the second attribute is reconstructed based on the residual information and prediction information of the second attribute. Optionally, the prediction information of the second attribute may refer to the information obtained by prediction in an existing manner, and the residual information of the second attribute is obtained by subtracting the prediction information from the original information of the second attribute.
[0250] It should be noted that, since the first objective function has been determined, the reconstructed attribute value of the second attribute of the point to be encoded is directly substituted into the first objective function to obtain the attribute prediction value of the first attribute of the point to be encoded.
[0251] After obtaining the first residual information based on the attribute prediction value of the obtained first attribute, encoding can be performed to obtain a target code stream. Optionally, in one implementation, the target code stream includes parameter information of the first objective function, the first residual information and residual information of the second attribute of the point to be encoded.
[0252] Optionally, the residual information of the second attribute of the point to be encoded is used by the decoding end to obtain the reconstructed value of the second attribute. The decoding end can obtain the attribute prediction value of the first attribute of the point to be decoded based on the reconstructed value of the second attribute and the parameter information of the first objective function.
[0253] After obtaining the attribute prediction value of the first attribute of the point to be decoded at the decoding end, the reconstructed attribute value of the first attribute of the point to be decoded can be obtained based on the first residual information. Usually, the attribute prediction value of the first attribute is added to the first residual information to obtain the reconstructed attribute value of the first attribute.
[0254] It should be noted that this method can improve the encoding and decoding efficiency.
[0255] The following is an example of a specific application of this situation.
[0256] By using the correlation between different types of attribute information in the multi-attribute sequence, the regression curve between the original information of the attribute to be encoded (i.e., the attribute to be encoded of the point to be encoded) and the encoded attribute correlated therewith (i.e., the encoded attribute of the encoded point) is directly fitted in segments, including but not limited to the form of a linear function. The above scheme may include: selecting L points in sequence from the point cloud to be encoded, and forming a point set with the selected L points, where L may be a positive integer greater than or equal to 20. Based on the current attributes to be encoded of the L points and the encoded type attribute information correlated therewith, the model parameters are determined. For example, the fitting straight line y=ax+b between the multiple attributes may be obtained by fitting a straight line using the least squares method.
[0257] It should also be noted that for building a prediction model, that is, fitting a straight line, after selecting a point set from the space block, in addition to using the least squares method to fit the straight line, you can also use methods different from the least squares method to fit the straight line, such as the gradient descent method or the Gauss-Newton method.
[0258] For each point, the predicted value of the attribute to be encoded is calculated using the reconstructed attribute value of the encoded attribute and the prediction model. The encoder verifies the original attribute value to obtain the prediction residual. The original prediction residual can still be calculated using the original encoding method, and one of the two modes is selected for rate distortion. The final selected prediction residual and the selected encoding mode are jointly encoded and encoded into the bitstream together with each prediction model parameter. Alternatively, when the prediction model error is quite small, the result calculated based on the prediction model can be directly used as the attribute prediction value of the current point to obtain the prediction residual. In this case, the prediction residual and the parameters involved in the prediction model need to be encoded into the bitstream.
[0259] The decoding end solves the parameters of each prediction model and can use the decoded information to select the corresponding prediction method to obtain the corresponding value of the current point, apply it to the decoded residual, and reconstruct the attribute value.
[0260] Optionally, in one implementation, the specific implementation of obtaining the first residual information of the first attribute of the point to be encoded includes:
[0261] Step S13, the encoding end determines a second objective function according to the second attribute of the reference point set of the to-be-encoded point and the second residual information of the first attribute;
[0262] It should be noted that, by fitting the encoded attributes of the points in the reference point set and the second residual information of the attributes to be encoded, a second objective function can be determined, wherein the parameter information in the second objective function is determined by fitting. Optionally, the reference point set of the points to be encoded refers to the reference point set corresponding to the points to be encoded. It should be noted that, in order to improve the fitting accuracy, optionally, in the embodiment of the present application, the first objective function is obtained by adopting a segmented fitting method; for example, including 10,000 points, these points are segmented, each segment includes 1,000 points, and the corresponding reference point set is the point set corresponding to which segment the points to be encoded belong to. Optionally, the reference point set may include points to be encoded, points whose first attributes are not encoded, and points whose second attributes are encoded.
[0263] It should be noted that the second residual information refers to residual information determined by an existing method. Optionally, the predicted information of the second attribute may refer to information predicted by an existing method, and the second residual information of the second attribute is obtained by subtracting the predicted information from the original information of the second attribute.
[0264] Step S14, the encoder determines first residual information of the first attribute of the point to be encoded according to the second objective function and second residual information of the second attribute of the point to be encoded;
[0265] Optionally, the second residual information of the second attribute of the point to be encoded refers to residual information determined by an existing method. Optionally, the predicted information of the second attribute of the point to be encoded may refer to information obtained by prediction by an existing method, and the second residual information of the second attribute of the point to be encoded is obtained by subtracting the predicted information from the original information of the second attribute of the point to be encoded.
[0266] Optionally, in one implementation, the encoder determines, according to the second objective function and the second residual information of the second attribute of the point to be encoded, a specific implementation of first residual information of the first attribute of the point to be encoded, including:
[0267] Step S141, the encoder determines prediction residual information of the first attribute of the point to be encoded according to the second objective function and second residual information of the second attribute of the point to be encoded;
[0268] It should be noted that, since the second objective function has been determined, the second residual information of the second attribute of the point to be encoded is directly substituted into the second objective function to obtain the predicted residual information of the first attribute of the point to be encoded.
[0269] Step S142: the encoder determines first residual information of the first attribute of the point to be encoded according to the prediction residual information of the first attribute of the point to be encoded and the second residual information of the first attribute of the point to be encoded.
[0270] After the prediction residual information is obtained, the first residual information may be obtained based on the second residual information. Optionally, the first residual information refers to a residual change value of the first attribute.
[0271] Optionally, after obtaining the first residual information of the first attribute of the point to be encoded, encoding can be performed to obtain a target code stream. Optionally, in one implementation, the target code stream includes: parameter information of the second objective function, the first residual information of the first attribute of the point to be encoded, and the second residual information of the second attribute in the reference point set.
[0272] Optionally, the second residual information of the second attribute in the reference point set and the parameter information of the second objective function are used by the decoding end to obtain the predicted residual information of the first attribute of the point to be decoded. After obtaining the predicted residual information of the first attribute of the point to be decoded, the decoding end can obtain the original residual of the first attribute based on the first residual information of the first attribute of the point to be decoded, and then reconstruct the first attribute based on the original residual and the attribute prediction value of the first attribute to obtain the reconstructed attribute value of the first attribute of the point to be decoded; optionally, the attribute prediction value of the first attribute is determined by the encoding end based on an existing method.
[0273] It should be noted that in this way, the prediction residual is obtained by direct fitting, and what is transmitted is the changing value of the residual, which can reduce the redundancy of the code stream and improve the coding efficiency. Correspondingly, the decoding end can also improve the decoding efficiency.
[0274] The following is an example of a specific application of this situation.
[0275] Using the correlation between different types of attribute information in the multi-attribute sequence, directly segmentally fit the regression curve between the residual of the current attribute to be encoded and the attribute of the encoded type that is correlated with it, including but not limited to the form of a linear function. It can include: sequentially selecting L points from the point cloud to be encoded, and forming a point set with the selected L points, where L can be a positive integer greater than or equal to 20. Based on the residual information of the current attribute to be encoded and the attribute of the encoded type that is correlated with it, the model parameters are determined. For example, the fitting straight line y=ax+b between the multiple attributes can be obtained by fitting a straight line using the least squares method.
[0276] For each point, the prediction model parameters of the point are used to represent the attribute residual of the current type to be encoded according to the attribute residual of the encoded type, for example, the attribute residual of the current attribute type to be encoded is y=ax+b, where x is the attribute residual of the corresponding encoded type. When the prediction model error is quite small, the residual calculated by the current model can be used to replace the original residual, and only each prediction model parameter is encoded into the bitstream; or the prediction residual can be calculated by the original encoding method, and the residual needs to be encoded, and one of the two rate-distortion modes is selected, and the finally selected prediction residual and the selected encoding mode are jointly encoded, and encoded into the bitstream together with each prediction model parameter.
[0277] The decoding end solves each prediction model parameter, uses the decoded information to select the corresponding method to obtain the attribute residual value of the current point, and applies it to the predicted attribute value to obtain the reconstructed attribute value.
[0278] The simulation results obtained by applying the embodiments of the present application on TMC13v23.0-rc1 of the current GPCC are as follows.
[0279] It should be noted that the parameters on the left in the following tables refer to different point cloud types. The embodiments of the present application are currently implemented on point cloud types with multiple attributes, such as Am-fused. C1, C2, CW, and CY refer to different test conditions, namely, geometric lossless, attribute lossy, geometric lossy, attribute lossless, geometric lossless, attribute lossless, and geometric lossless, attribute near lossless.
[0280] 1. The performance results of using color attributes to predict reflectance attributes are shown in Tables 1 to 4:
[0281] Table 1 Performance results of color prediction reflectance (Part 1)
[0282]
[0283] Table 2 Performance results of color prediction reflectance (II)
[0284]
[0285]
[0286] Table 3 Performance results of color prediction reflectivity (III)
[0287]
[0288] Table 4 Performance results of color prediction reflectance (IV)
[0289]
[0290] 2. The performance results of using reflectance attributes to predict color attributes are shown in Tables 5 to 8:
[0291] Table 5 Performance results of reflectance prediction color (Part 1)
[0292]
[0293] Table 6 Performance results of reflectivity prediction color (II)
[0294]
[0295] Table 7 Performance results of reflectivity prediction color (III)
[0296]
[0297] Table 8 Performance results of reflectivity prediction color (IV)
[0298]
[0299]
[0300] It should be noted that, compared with the prior art, the embodiments of the present application can reduce the bit rate and improve the coding efficiency.
[0301] like Fig.12 As shown, an embodiment of the present application provides a decoding method, including:
[0302] Step 1201: The decoding end obtains a reconstructed attribute value of a first attribute of a point to be decoded, wherein the reconstructed attribute value is determined based on a second attribute of the point to be decoded, wherein the second attribute is a decoded attribute, and the first attribute and the second attribute are of different attribute types.
[0303] Optionally, in an implementation manner, obtaining the reconstructed attribute value of the first attribute of the point to be decoded includes:
[0304] The decoding end obtains a property prediction value of a first property of the point to be decoded, wherein the property prediction value is determined based on a second property of the point to be decoded;
[0305] The decoding end determines a reconstructed attribute value of the first attribute of the to-be-decoded point according to the attribute prediction value and the first residual information of the first attribute.
[0306] Optionally, the specific implementation of obtaining the attribute prediction value of the first attribute of the point to be decoded includes:
[0307] The decoding end, when determining to use cross-attribute prediction for the first attribute, obtains a comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set, wherein the comprehensive distance is determined according to a second attribute of the point to be decoded and a second attribute of the neighbor point;
[0308] The decoding end reorders neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set;
[0309] The decoding end determines an attribute prediction value of a first attribute of the to-be-decoded point based on the second prediction point set.
[0310] Optionally, the specific implementation of obtaining the comprehensive distance between the to-be-decoded point and each neighbor point in the first prediction point set includes:
[0311] The decoding end obtains the geometric distance between the to-be-decoded point and each neighbor point in the first prediction point set;
[0312] The decoding end obtains an attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set;
[0313] The decoding end determines a comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance.
[0314] Optionally, the specific implementation of obtaining the attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set includes:
[0315] The decoding end determines the attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set based on the number of components included in the second attribute and the weight of each component when calculating the attribute distance.
[0316] Optionally, the specific implementation of determining the comprehensive distance between the to-be-decoded point and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance includes:
[0317] The decoding end determines a comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set according to the geometric distance, the weight corresponding to the geometric distance, the attribute distance, and the weight corresponding to the attribute distance.
[0318] Optionally, the specific implementation of reordering the neighbor points in the first prediction point set based on the comprehensive distance to obtain the second prediction point set includes:
[0319] The decoding end reorders the neighbor points in the first prediction point set in ascending order based on the comprehensive distance to obtain a second prediction point set.
[0320] Optionally, the specific implementation of determining the attribute prediction value of the first attribute of the to-be-decoded point based on the second prediction point set includes:
[0321] The decoding end determines the attribute prediction value of the first attribute of the to-be-decoded point according to the reconstructed attribute value of the first attribute of each neighbor point in the second prediction point set and the weight coefficient;
[0322] The weight coefficient of the neighbor node is determined by the comprehensive distance between the neighbor node and the point to be decoded.
[0323] Optionally, the method further includes:
[0324] The decoding end decodes the received target bitstream to obtain first indication information, where the first indication information is used to indicate whether the encoding end uses inter-attribute type prediction;
[0325] The decoder obtains second indication information in the target bitstream when the first indication information is used to indicate that the encoder uses inter-attribute prediction, where the second indication information is used to indicate whether the first attribute uses inter-attribute prediction;
[0326] The decoding end determines to use the cross-attribute prediction for the first attribute when the second indication information is used to indicate that the first attribute uses the cross-attribute prediction.
[0327] Optionally, in an implementation manner, obtaining the attribute prediction value of the first attribute of the point to be decoded includes:
[0328] The decoding end obtains parameter information of a first objective function in a target bitstream;
[0329] The decoding end determines the attribute prediction value of the first attribute of the point to be decoded according to the parameter information of the objective function and the reconstructed attribute value of the second attribute of the point to be decoded;
[0330] The reconstructed attribute value of the second attribute of the point to be decoded is determined based on the residual information of the second attribute of the point to be decoded indicated by the target code stream.
[0331] Optionally, obtaining the reconstructed attribute value of the first attribute of the point to be decoded includes:
[0332] The decoding end obtains parameter information of a second objective function in the target bitstream;
[0333] The decoding end determines the prediction residual information of the first attribute of the point to be decoded according to the parameter information of the second objective function and the second residual information of the second attribute of the point to be decoded;
[0334] The decoding end determines a reconstructed attribute value of the first attribute of the to-be-decoded point according to the first residual information of the first attribute and the prediction residual information;
[0335] The first residual information of the first attribute is indicated by the target code stream.
[0336] It should be noted that, compared with the prior art, the embodiments of the present application can reduce the bit rate and improve the decoding efficiency.
[0337] It should be noted that all implementation methods in the above embodiments are applicable to the embodiments of the decoding method applied to the decoding end, and can achieve the same technical effect, which will not be repeated here.
[0338] The encoding method provided in the embodiment of the present application may be executed by an encoding device. In the embodiment of the present application, the encoding device provided in the embodiment of the present application is described by taking the encoding method executed by the encoding device as an example.
[0339] like Fig.13 As shown, the encoding device 1300 of the embodiment of the present application includes:
[0340] A first acquisition module 1301 is used to acquire first residual information of a first attribute of a to-be-encoded point, where the first residual information is determined based on a second attribute of the to-be-encoded point, where the second attribute is an encoded attribute, and the first attribute and the second attribute have different attribute types;
[0341] The generating module 1302 is configured to generate a target bitstream according to the first residual information.
[0342] Optionally, the first acquisition module 1301 includes:
[0343] A first acquisition unit, configured to acquire an attribute prediction value of a first attribute of the to-be-encoded point, wherein the attribute prediction value is determined based on a second attribute of the to-be-encoded point;
[0344] The first determining unit is used to determine first residual information of a first attribute of the to-be-encoded point according to the attribute prediction value.
[0345] Optionally, the first acquiring unit is used to:
[0346] In a case where it is determined to use cross-attribute prediction for the first attribute, obtaining a comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set, where the comprehensive distance is determined according to a second attribute of the point to be encoded and a second attribute of the neighbor point;
[0347] Reordering neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set;
[0348] Based on the second prediction point set, an attribute prediction value of the first attribute of the point to be encoded is determined.
[0349] Optionally, the method for obtaining the comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set includes:
[0350] Obtaining a geometric distance between the point to be encoded and each neighbor point in the first prediction point set;
[0351] Obtaining an attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set;
[0352] The comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set is determined according to the geometric distance and the attribute distance.
[0353] Optionally, the method for obtaining the attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set includes:
[0354] Based on the number of components included in the second attribute and the weight of each component when calculating the attribute distance, the attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set is determined.
[0355] Optionally, the implementation method of determining the comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance includes:
[0356] The comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set is determined according to the geometric distance, the weight corresponding to the geometric distance, the attribute distance, and the weight corresponding to the attribute distance.
[0357] Optionally, the method of reordering the neighbor points in the first prediction point set based on the comprehensive distance to obtain the second prediction point set includes:
[0358] The neighbor points in the first prediction point set are reordered in ascending order based on the comprehensive distance to obtain a second prediction point set.
[0359] Optionally, the method for implementing the step of determining the attribute prediction value of the first attribute of the to-be-coded point based on the second prediction point set includes:
[0360] Determining an attribute prediction value of the first attribute of the point to be encoded based on the reconstructed attribute value of the first attribute of each neighbor point in the second prediction point set and a weight coefficient;
[0361] The weight coefficient of the neighbor node is determined by the comprehensive distance between the neighbor node and the point to be encoded.
[0362] Optionally, the target bitstream includes: first indication information and second indication information, the first indication information is used to indicate whether the encoding end uses inter-attribute type prediction, and the second indication information is used to indicate whether the first attribute uses cross-attribute prediction.
[0363] Optionally, the first acquiring unit is used to:
[0364] Determining a first objective function according to the second attribute of the reference point set of the to-be-encoded point and the original information of the first attribute;
[0365] An attribute prediction value of a first attribute of the point to be encoded is determined according to the first objective function and the reconstructed attribute value of the second attribute of the point to be encoded.
[0366] Optionally, the target code stream includes parameter information of the first objective function, the first residual information, and residual information of the second attribute of the point to be encoded.
[0367] Optionally, the first acquisition module 1301 includes:
[0368] A second determining unit, configured to determine a second objective function according to a second attribute of the reference point set of the to-be-encoded point and second residual information of the first attribute;
[0369] The third determining unit is used to determine the first residual information of the first attribute of the point to be encoded according to the second objective function and the second residual information of the second attribute of the point to be encoded.
[0370] Optionally, the third determining unit is used to:
[0371] Determining prediction residual information of the first attribute of the point to be encoded according to the second objective function and the second residual information of the second attribute of the point to be encoded;
[0372] First residual information of the first attribute of the point to be encoded is determined according to the prediction residual information of the first attribute of the point to be encoded and the second residual information of the first attribute of the point to be encoded.
[0373] Optionally, the target code stream includes: parameter information of the second objective function, first residual information of a first attribute of the point to be encoded, and second residual information of a second attribute in the reference point set.
[0374] It should be noted that the device embodiment corresponds to the above method, and all implementation methods in the above method embodiment are applicable to the device embodiment and can achieve the same technical effect.
[0375] The encoding device in the embodiment of the present application can be an electronic device, such as an electronic device with an operating system, or a component in an electronic device, such as an integrated circuit or a chip. The electronic device can be a terminal, or it can be other devices other than a terminal. Exemplarily, the terminal can include but is not limited to the types of terminals 11 listed above, and other devices can be servers, network attached storage (Network Attached Storage, NAS), etc., which are not specifically limited in the embodiment of the present application.
[0376] The encoding end provided in the embodiment of the present application can achieve Fig.10 The various processes implemented by the method embodiment and achieving the same technical effect are not described here to avoid repetition.
[0377] like Fig.14 As shown, the decoding device 1400 of the embodiment of the present application includes:
[0378] The second acquisition module 1401 is used to acquire a reconstructed attribute value of a first attribute of a point to be decoded, wherein the reconstructed attribute value is determined based on a second attribute of the point to be decoded, wherein the second attribute is a decoded attribute, and the first attribute and the second attribute are of different attribute types.
[0379] Optionally, the second acquisition module 1401 includes:
[0380] A second acquisition unit, configured to acquire an attribute prediction value of a first attribute of the point to be decoded, wherein the attribute prediction value is determined based on a second attribute of the point to be decoded;
[0381] The fourth determining unit is configured to determine a reconstructed attribute value of the first attribute of the to-be-decoded point according to the attribute prediction value and the first residual information of the first attribute.
[0382] Optionally, the second acquiring unit is used to:
[0383] In a case where it is determined to use cross-attribute prediction for the first attribute, obtaining a comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set, wherein the comprehensive distance is determined according to a second attribute of the point to be decoded and a second attribute of the neighbor point;
[0384] Reordering neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set;
[0385] Based on the second prediction point set, an attribute prediction value of the first attribute of the point to be decoded is determined.
[0386] Optionally, the method for obtaining the comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set includes:
[0387] Obtaining a geometric distance between the to-be-decoded point and each neighbor point in the first prediction point set;
[0388] Obtaining an attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set;
[0389] The comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set is determined according to the geometric distance and the attribute distance.
[0390] Optionally, the method for obtaining the attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set includes:
[0391] Based on the number of components included in the second attribute and the weight of each component when calculating the attribute distance, the attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set is determined.
[0392] Optionally, the implementation method of determining the comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance includes:
[0393] The comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set is determined according to the geometric distance, the weight corresponding to the geometric distance, the attribute distance, and the weight corresponding to the attribute distance.
[0394] Optionally, the method of reordering the neighbor points in the first prediction point set based on the comprehensive distance to obtain the second prediction point set includes:
[0395] The neighbor points in the first prediction point set are reordered in ascending order based on the comprehensive distance to obtain a second prediction point set.
[0396] Optionally, the method for implementing the step of determining the attribute prediction value of the first attribute of the to-be-decoded point based on the second prediction point set includes:
[0397] Determining an attribute prediction value of the first attribute of the point to be decoded according to the reconstructed attribute value of the first attribute of each neighbor point in the second prediction point set and a weight coefficient;
[0398] The weight coefficient of the neighbor node is determined by the comprehensive distance between the neighbor node and the point to be decoded.
[0399] Optionally, the decoding device further includes:
[0400] A third acquisition module, configured to decode the received target bitstream and acquire first indication information, where the first indication information is used to indicate whether the encoding end uses inter-attribute type prediction;
[0401] a fourth acquisition module, configured to acquire second indication information in the target bitstream when the first indication information is used to indicate that the encoder uses inter-attribute prediction, wherein the second indication information is used to indicate whether the first attribute uses inter-attribute prediction;
[0402] A determination module is used to determine to use cross-attribute prediction for the first attribute when the second indication information is used to indicate that the first attribute uses cross-attribute prediction.
[0403] Optionally, the second acquiring unit is used to:
[0404] Obtaining parameter information of a first objective function in a target bitstream;
[0405] Determining a predicted attribute value of a first attribute of the point to be decoded according to the parameter information of the objective function and the reconstructed attribute value of the second attribute of the point to be decoded;
[0406] The reconstructed attribute value of the second attribute of the point to be decoded is determined based on the residual information of the second attribute of the point to be decoded indicated by the target code stream.
[0407] Optionally, the second acquisition module 1401 includes:
[0408] A third acquisition unit, used to acquire parameter information of a second objective function in a target bitstream;
[0409] a fifth determining unit, configured to determine prediction residual information of the first attribute of the point to be decoded according to the parameter information of the second objective function and the second residual information of the second attribute of the point to be decoded;
[0410] a sixth determining unit, configured to determine a reconstructed attribute value of the first attribute of the to-be-decoded point according to the first residual information of the first attribute and the prediction residual information;
[0411] The first residual information of the first attribute is indicated by the target code stream.
[0412] It should be noted that the device embodiment corresponds to the above method, and all implementation methods in the above method embodiment are applicable to the device embodiment and can achieve the same technical effect.
[0413] The decoding end in the embodiment of the present application may be an electronic device, such as an electronic device with an operating system, or a component in an electronic device, such as an integrated circuit or a chip. The electronic device may be a terminal, or may be other devices other than a terminal. Exemplarily, the terminal may include but is not limited to the types of the terminal 11 listed above, and other devices may be servers, network attached storage (NAS), etc., which are not specifically limited in the embodiment of the present application.
[0414] The decoding end provided in the embodiment of the present application can realize Fig.12 The various processes implemented by the method embodiment and achieving the same technical effect are not described here to avoid repetition.
[0415] like Fig.15 As shown, the embodiment of the present application further provides an electronic device 1500, including a processor 1501 and a memory 1502, the memory 1502 stores programs or instructions that can be run on the processor 1501, for example, when the electronic device 1500 is an encoding end device, the program or instruction is executed by the processor 1501 to implement the various steps of the above encoding method embodiment, and can achieve the same technical effect. When the electronic device 1500 is a decoding end device, the program or instruction is executed by the processor 1501 to implement the various steps of the above decoding method embodiment, and can achieve the same technical effect, to avoid repetition, it will not be repeated here. Optionally, the memory 1502 can be Figure 1 In the memory 102 or the memory 113 in the embodiment shown, the processor 1501 may implement Figure 1-3 Functionality of the encoder 200 or decoder 300 in the illustrated embodiment.
[0416] The present application also provides an electronic device, including: a memory configured to store video data; and a processing circuit configured to implement the various steps of the above encoding method or decoding method embodiment. Optionally, the memory may be Figure 1 In the memory 102 or the memory 113 in the embodiment shown, the processing circuit can implement Figure 1-3 Functionality of the encoder 200 or decoder 300 in the illustrated embodiment.
[0417] The embodiment of the present application also provides an electronic device, including a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run a program or instruction to implement the following Fig.10 or Fig.12 The steps in the method embodiment shown. This device embodiment corresponds to the above method embodiment, and each implementation process and implementation mode of the above method embodiment can be applied to this terminal embodiment and can achieve the same technical effect.
[0418] The electronic device may be a terminal, or may be other devices other than a terminal, such as a server, a network attached storage (NAS), etc.
[0419] Among them, the terminal can be a mobile phone, a tablet personal computer, a laptop computer, a notebook computer, a personal digital assistant (PDA), a handheld computer, a netbook, an ultra-mobile personal computer (UMPC), a mobile Internet device (MID), an augmented reality (AR), a virtual reality (VR) device, a mixed reality (MR) device, a robot, a wearable device (Wearable Device), a flight vehicle, a vehicle user equipment (VUE), a ship-borne equipment, a pedestrian terminal (Pedestrian User Equipment, PUE), a smart home (home appliances with wireless communication functions, such as refrigerators, televisions, washing machines or furniture, etc.), a game console, a personal computer (PC), a teller machine or a self-service machine and other terminal-side devices. Wearable devices include: smart watches, smart bracelets, smart headphones, smart glasses, smart jewelry (smart bracelets, smart bracelets, smart rings, smart necklaces, smart anklets, smart anklets, etc.), smart wristbands, smart clothing, etc. Among them, the vehicle-mounted device can also be called a vehicle-mounted terminal, a vehicle-mounted controller, a vehicle-mounted module, a vehicle-mounted component, a vehicle-mounted chip or a vehicle-mounted unit, etc. It should be noted that the specific type of the terminal is not limited in the embodiments of the present application.
[0420] The server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that can provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), or cloud computing services based on big data and artificial intelligence platforms.
[0421] Exemplarily, the electronic device may include but is not limited to Figure 1 The type of source device 100 or destination device 110 shown.
[0422] Taking electronic devices as terminals as an example, Fig.16 A schematic diagram of the hardware structure of a terminal for implementing an embodiment of the present application.
[0423] The terminal 1600 includes but is not limited to: a radio frequency unit 1601, a network module 1602, an audio output unit 1603, an input unit 1604, a sensor 1605, a display unit 1606, a user input unit 1607, an interface unit 1608, a memory 1609 and at least some of the components of the processor 1610.
[0424] Those skilled in the art will appreciate that the terminal 1600 may also include a power source (such as a battery) for supplying power to each component, and the power source may be logically connected to the processor 1610 through a power management system, thereby implementing functions such as managing charging, discharging, and power consumption management through the power management system. Fig.16 The terminal structure shown in the figure does not constitute a limitation on the terminal. The terminal may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently, which will not be described in detail here.
[0425] It should be understood that in the embodiment of the present application, the input unit 1604 may include a graphics processing unit (GPU) 16041 and a microphone 16042, and the graphics processor 16041 processes the image data of a static picture or video obtained by an image acquisition device (such as a camera) in a video acquisition mode or an image acquisition mode, or may process the obtained point cloud data. The display unit 1606 may include a display panel 16061, and the display panel 16061 may be configured in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 1607 includes a touch panel 16071 and at least one of other input devices 16072. The touch panel 16071 is also called a touch screen. The touch panel 16071 may include two parts: a touch detection device and a touch controller. Other input devices 16072 may include, but are not limited to, a physical keyboard, function keys (such as a volume control button, a switch button, etc.), a trackball, a mouse, and a joystick, which will not be repeated here.
[0426] In the embodiment of the present application, after receiving downlink data from the network side device, the RF unit 1601 can transmit the data to the processor 1610 for processing; in addition, the RF unit 1601 can send uplink data to the network side device. Generally, the RF unit 1601 includes but is not limited to an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.
[0427] The memory 1609 can be used to store software programs or instructions and various data. The memory 1609 may mainly include a first storage area for storing programs or instructions and a second storage area for storing data, wherein the first storage area may store an operating system, an application program or instruction required for at least one function (such as a sound playback function, an image playback function, etc.), etc. In addition, the memory 1609 may include a volatile memory or a non-volatile memory. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDRSDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchronous link dynamic random access memory (SLDRAM) and a direct memory bus random access memory (DRRAM). The memory 1609 in the embodiment of the present application includes but is not limited to these and any other suitable types of memory.
[0428] The processor 1610 may include one or more processing units; optionally, the processor 1610 integrates an application processor and a modem processor, wherein the application processor mainly processes operations related to an operating system, a user interface, and application programs, and the modem processor mainly processes wireless communication signals, such as a baseband processor. It is understandable that the modem processor may not be integrated into the processor 1610.
[0429] In one embodiment of the present application, the processor 1610 is configured to:
[0430] Acquire first residual information of a first attribute of a point to be encoded, where the first residual information is determined based on a second attribute of the point to be encoded, where the second attribute is an encoded attribute, and the first attribute and the second attribute have different attribute types;
[0431] A target bitstream is generated according to the first residual information.
[0432] Optionally, the processor 1610 is configured to:
[0433] Acquire an attribute prediction value of a first attribute of the point to be encoded, wherein the attribute prediction value is determined based on a second attribute of the point to be encoded;
[0434] Determine first residual information of a first attribute of the point to be encoded according to the attribute prediction value.
[0435] Optionally, the processor 1610 is configured to:
[0436] In a case where it is determined to use cross-attribute prediction for the first attribute, obtaining a comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set, where the comprehensive distance is determined according to a second attribute of the point to be encoded and a second attribute of the neighbor point;
[0437] Reordering neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set;
[0438] Based on the second prediction point set, an attribute prediction value of the first attribute of the point to be encoded is determined.
[0439] Optionally, the processor 1610 is configured to:
[0440] Obtaining a geometric distance between the point to be encoded and each neighbor point in the first prediction point set;
[0441] Obtaining an attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set;
[0442] The comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set is determined according to the geometric distance and the attribute distance.
[0443] Optionally, the processor 1610 is configured to:
[0444] Based on the number of components included in the second attribute and the weight of each component when calculating the attribute distance, the attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set is determined.
[0445] Optionally, the processor is configured to:
[0446] The comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set is determined according to the geometric distance, the weight corresponding to the geometric distance, the attribute distance, and the weight corresponding to the attribute distance.
[0447] Optionally, the processor 1610 is configured to:
[0448] The neighbor points in the first prediction point set are reordered in ascending order based on the comprehensive distance to obtain a second prediction point set.
[0449] Optionally, the processor 1610 is configured to:
[0450] Determining an attribute prediction value of the first attribute of the point to be encoded based on the reconstructed attribute value of the first attribute of each neighbor point in the second prediction point set and a weight coefficient;
[0451] The weight coefficient of the neighbor node is determined by the comprehensive distance between the neighbor node and the point to be encoded.
[0452] Optionally, the target bitstream includes: first indication information and second indication information, the first indication information is used to indicate whether the encoding end uses inter-attribute type prediction, and the second indication information is used to indicate whether the first attribute uses cross-attribute prediction.
[0453] Optionally, the processor 1610 is configured to:
[0454] Determining a first objective function according to the second attribute of the reference point set of the to-be-encoded point and the original information of the first attribute;
[0455] An attribute prediction value of a first attribute of the point to be encoded is determined according to the first objective function and the reconstructed attribute value of the second attribute of the point to be encoded.
[0456] Optionally, the target code stream includes parameter information of the first objective function, the first residual information, and residual information of the second attribute of the point to be encoded.
[0457] Optionally, the processor is configured to:
[0458] Determine a second objective function according to a second attribute of the reference point set of the to-be-encoded point and second residual information of the first attribute;
[0459] The first residual information of the first attribute of the point to be encoded is determined according to the second objective function and the second residual information of the second attribute of the point to be encoded.
[0460] Optionally, the processor 1610 is configured to:
[0461] Determining prediction residual information of the first attribute of the point to be encoded according to the second objective function and the second residual information of the second attribute of the point to be encoded;
[0462] First residual information of the first attribute of the point to be encoded is determined according to the prediction residual information of the first attribute of the point to be encoded and the second residual information of the first attribute of the point to be encoded.
[0463] Optionally, the target code stream includes: parameter information of the second objective function, first residual information of a first attribute of the point to be encoded, and second residual information of a second attribute in the reference point set.
[0464] Preferably, an embodiment of the present application also provides an electronic device, including a processor, a memory, and a program or instruction stored in the memory and executable on the processor. When the program or instruction is executed by the processor, the various processes of the above-mentioned encoding method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
[0465] An embodiment of the present application also provides a computer-readable storage medium, on which a program or instruction is stored. When the program or instruction is executed by a processor, the various processes of the above-mentioned encoding method embodiment are implemented and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
[0466] The computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0467] In another embodiment of the present application, the processor 1610 is configured to:
[0468] A reconstructed attribute value of a first attribute of a point to be decoded is obtained, where the reconstructed attribute value is determined based on a second attribute of the point to be decoded, where the second attribute is a decoded attribute, and the first attribute and the second attribute are of different attribute types.
[0469] Optionally, the processor is configured to:
[0470] Acquire a predicted attribute value of a first attribute of the point to be decoded, wherein the predicted attribute value is determined based on a second attribute of the point to be decoded;
[0471] A reconstructed attribute value of the first attribute of the point to be decoded is determined according to the attribute prediction value and the first residual information of the first attribute.
[0472] Optionally, the processor is configured to:
[0473] In a case where it is determined to use cross-attribute prediction for the first attribute, obtaining a comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set, wherein the comprehensive distance is determined according to a second attribute of the point to be decoded and a second attribute of the neighbor point;
[0474] Reordering neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set;
[0475] Based on the second prediction point set, an attribute prediction value of the first attribute of the to-be-decoded point is determined.
[0476] Optionally, the processor is configured to:
[0477] Obtaining a geometric distance between the to-be-decoded point and each neighbor point in the first prediction point set;
[0478] Obtaining an attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set;
[0479] The comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set is determined according to the geometric distance and the attribute distance.
[0480] Optionally, the processor is configured to:
[0481] Based on the number of components included in the second attribute and the weight of each component when calculating the attribute distance, the attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set is determined.
[0482] Optionally, the processor is configured to:
[0483] The comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set is determined according to the geometric distance, the weight corresponding to the geometric distance, the attribute distance, and the weight corresponding to the attribute distance.
[0484] Optionally, the processor is configured to:
[0485] The neighbor points in the first prediction point set are reordered in ascending order based on the comprehensive distance to obtain a second prediction point set.
[0486] Optionally, the processor is configured to:
[0487] Determining an attribute prediction value of the first attribute of the point to be decoded according to the reconstructed attribute value of the first attribute of each neighbor point in the second prediction point set and a weight coefficient;
[0488] The weight coefficient of the neighbor node is determined by the comprehensive distance between the neighbor node and the point to be decoded.
[0489] Optionally, the processor is further configured to:
[0490] Decoding the received target bitstream to obtain first indication information, where the first indication information is used to indicate whether the encoding end uses inter-attribute type prediction;
[0491] In a case where the first indication information is used to instruct the encoder to use inter-attribute prediction, second indication information is obtained in the target bitstream, where the second indication information is used to indicate whether the first attribute uses inter-attribute prediction;
[0492] In a case where the second indication information is used to indicate that the first attribute adopts cross-attribute prediction, it is determined to use cross-attribute prediction for the first attribute.
[0493] Optionally, the processor is configured to:
[0494] Obtaining parameter information of a first objective function in a target bitstream;
[0495] Determining a predicted attribute value of a first attribute of the point to be decoded according to the parameter information of the objective function and the reconstructed attribute value of the second attribute of the point to be decoded;
[0496] The reconstructed attribute value of the second attribute of the point to be decoded is determined based on the residual information of the second attribute of the point to be decoded indicated by the target code stream.
[0497] Optionally, the processor is configured to:
[0498] Obtaining parameter information of a second objective function in a target code stream;
[0499] Determining prediction residual information of the first attribute of the point to be decoded according to parameter information of the second objective function and second residual information of the second attribute of the point to be decoded;
[0500] Determining a reconstructed attribute value of the first attribute of the point to be decoded according to the first residual information of the first attribute and the predicted residual information;
[0501] The first residual information of the first attribute is indicated by the target code stream.
[0502] An embodiment of the present application further provides a chip, which includes a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the various processes of the above-mentioned encoding method or decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0503] It should be understood that the chip mentioned in the embodiments of the present application can also be called a system-level chip, a system chip, a chip system or a system-on-chip chip, etc.
[0504] The embodiments of the present application further provide a computer program / program product, which is stored in a storage medium. The computer program / program product is executed by at least one processor to implement the various processes of the above-mentioned encoding method or decoding method embodiments, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0505] An embodiment of the present application also provides a coding and decoding system, including: a coding device and a decoding device, wherein the coding device can be used to execute the steps of the above-mentioned coding method, and the decoding device can be used to execute the steps of the above-mentioned decoding method.
[0506] It should be noted that, in this article, the terms "comprise", "include" or any other variant thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise one..." do not exclude the presence of other identical elements in the process, method, article or device including the element. In addition, it should be pointed out that the scope of the methods and devices in the embodiments of the present application is not limited to performing functions in the order shown or discussed, and may also include performing functions in a substantially simultaneous manner or in reverse order according to the functions involved, for example, the described method may be performed in an order different from that described, and various steps may also be added, omitted, or combined. In addition, the features described with reference to certain examples may be combined in other examples.
[0507] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a computer software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for a terminal (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in each embodiment of the present application.
[0508] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of the present application, ordinary technicians in this field can also make many forms without departing from the purpose of the present application and the scope of protection of the claims, all of which are within the protection of the present application.
Claims
1. A coding method, characterized in that: include: The encoder obtains first residual information of a first attribute of a point to be encoded, where the first residual information is determined based on a second attribute of the point to be encoded, where the second attribute is an encoded attribute, and the first attribute and the second attribute have different attribute types; The encoding end generates a target bitstream according to the first residual information.
2. The method according to claim 1, characterized in that: The obtaining of first residual information of a first attribute of a point to be encoded includes: The encoding end obtains an attribute prediction value of a first attribute of the to-be-encoded point, wherein the attribute prediction value is determined based on a second attribute of the to-be-encoded point; The encoder determines first residual information of a first attribute of the point to be encoded according to the attribute prediction value.
3. The method according to claim 2, characterized in that The step of obtaining the attribute prediction value of the first attribute of the point to be encoded includes: The encoder, when determining to use cross-attribute prediction for the first attribute, obtains a comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set, where the comprehensive distance is determined according to a second attribute of the point to be encoded and a second attribute of the neighbor point; The encoder reorders neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set; The encoder determines, based on the second prediction point set, an attribute prediction value of a first attribute of the to-be-encoded point.
4. The method according to claim 3, characterized in that: The obtaining of the comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set includes: The encoding end obtains the geometric distance between the to-be-encoded point and each neighbor point in the first prediction point set; The encoding end obtains an attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set; The encoding end determines a comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance.
5. The method according to claim 4, characterized in that The obtaining of the attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set includes: The encoder determines the attribute distance between the second attribute of the point to be encoded and the second attribute of each neighbor point in the first prediction point set based on the number of components included in the second attribute and the weight of each component when calculating the attribute distance.
6. The method according to claim 4, characterized in that The step of determining the comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance includes: The encoding end determines a comprehensive distance between the point to be encoded and each neighbor point in the first prediction point set according to the geometric distance, the weight corresponding to the geometric distance, the attribute distance, and the weight corresponding to the attribute distance.
7. The method according to any one of claims 3 to 6, characterized in that: The step of reordering the neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set includes: The encoder reorders the neighbor points in the first prediction point set in ascending order based on the comprehensive distance to obtain a second prediction point set.
8. The method according to any one of claims 3 to 7, characterized in that: The step of determining the attribute prediction value of the first attribute of the to-be-coded point based on the second prediction point set includes: The encoder determines, based on the reconstructed attribute value of the first attribute of each neighbor point in the second prediction point set and a weight coefficient, an attribute prediction value of the first attribute of the point to be encoded; The weight coefficient of the neighbor node is determined by the comprehensive distance between the neighbor node and the point to be encoded.
9. The method according to any one of claims 3 to 8, characterized in that: The target bitstream includes: first indication information and second indication information, wherein the first indication information is used to indicate whether the encoding end uses inter-attribute prediction, and the second indication information is used to indicate whether the first attribute uses cross-attribute prediction.
10. The method according to claim 2, characterized in that The step of obtaining the attribute prediction value of the first attribute of the point to be encoded includes: The encoding end determines a first objective function according to the second attribute of the reference point set of the to-be-encoded point and original information of the first attribute; The encoder determines an attribute prediction value of a first attribute of the point to be encoded according to the first objective function and the reconstructed attribute value of the second attribute of the point to be encoded.
11. The method according to claim 10, characterized in that The target code stream includes parameter information of the first objective function, the first residual information, and residual information of the second attribute of the point to be encoded.
12. The method according to claim 1, characterized in that The obtaining of first residual information of a first attribute of a point to be encoded includes: The encoding end determines a second objective function according to a second attribute of the reference point set of the to-be-encoded point and second residual information of the first attribute; The encoder determines first residual information of a first attribute of the point to be encoded according to the second objective function and second residual information of a second attribute of the point to be encoded.
13. The method according to claim 12, characterized in that The encoder determines, according to the second objective function and the second residual information of the second attribute of the point to be encoded, the first residual information of the first attribute of the point to be encoded, including: The encoder determines, according to the second objective function and the second residual information of the second attribute of the point to be encoded, the prediction residual information of the first attribute of the point to be encoded; The encoder determines first residual information of the first attribute of the point to be encoded according to the prediction residual information of the first attribute of the point to be encoded and the second residual information of the first attribute of the point to be encoded.
14. The method according to claim 12 or 13, characterized in that The target code stream includes: parameter information of the second objective function, first residual information of the first attribute of the point to be encoded, and second residual information of the second attribute in the reference point set.
15. A decoding method, characterized in that: include: The decoding end obtains a reconstructed attribute value of a first attribute of a point to be decoded, wherein the reconstructed attribute value is determined based on a second attribute of the point to be decoded, wherein the second attribute is a decoded attribute, and the first attribute and the second attribute are of different attribute types.
16. The method according to claim 15, characterized in that The obtaining of the reconstructed attribute value of the first attribute of the point to be decoded includes: The decoding end obtains a property prediction value of a first property of the point to be decoded, wherein the property prediction value is determined based on a second property of the point to be decoded; The decoding end determines a reconstructed attribute value of the first attribute of the to-be-decoded point according to the attribute prediction value and the first residual information of the first attribute.
17. The method according to claim 16, characterized in that The obtaining of the attribute prediction value of the first attribute of the point to be decoded includes: The decoding end, when determining to use cross-attribute prediction for the first attribute, obtains a comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set, wherein the comprehensive distance is determined according to a second attribute of the point to be decoded and a second attribute of the neighbor point; The decoding end reorders neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set; The decoding end determines an attribute prediction value of a first attribute of the to-be-decoded point based on the second prediction point set.
18. The method according to claim 17, characterized in that The obtaining of the comprehensive distance between the to-be-decoded point and each neighbor point in the first prediction point set includes: The decoding end obtains the geometric distance between the to-be-decoded point and each neighbor point in the first prediction point set; The decoding end obtains an attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set; The decoding end determines a comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance.
19. The method according to claim 18, characterized in that The obtaining of the attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set includes: The decoding end determines the attribute distance between the second attribute of the point to be decoded and the second attribute of each neighbor point in the first prediction point set based on the number of components included in the second attribute and the weight of each component when calculating the attribute distance.
20. The method according to claim 18, characterized in that The step of determining the comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set according to the geometric distance and the attribute distance includes: The decoding end determines a comprehensive distance between the point to be decoded and each neighbor point in the first prediction point set according to the geometric distance, the weight corresponding to the geometric distance, the attribute distance, and the weight corresponding to the attribute distance.
21. The method according to any one of claims 17 to 20, characterized in that: The step of reordering the neighbor points in the first prediction point set based on the comprehensive distance to obtain a second prediction point set includes: The decoding end reorders the neighbor points in the first prediction point set in ascending order based on the comprehensive distance to obtain a second prediction point set.
22. The method according to any one of claims 17 to 20, characterized in that: The step of determining the attribute prediction value of the first attribute of the to-be-decoded point based on the second prediction point set includes: The decoding end determines the attribute prediction value of the first attribute of the to-be-decoded point according to the reconstructed attribute value of the first attribute of each neighbor point in the second prediction point set and the weight coefficient; The weight coefficient of the neighbor node is determined by the comprehensive distance between the neighbor node and the point to be decoded.
23. The method according to any one of claims 17 to 22, characterized in that: Also includes: The decoding end decodes the received target bitstream to obtain first indication information, where the first indication information is used to indicate whether the encoding end uses inter-attribute type prediction; The decoder obtains second indication information in the target bitstream when the first indication information is used to indicate that the encoder uses inter-attribute prediction, where the second indication information is used to indicate whether the first attribute uses inter-attribute prediction; The decoding end determines to use the cross-attribute prediction for the first attribute when the second indication information is used to indicate that the first attribute uses the cross-attribute prediction.
24. The method according to claim 16, characterized in that The obtaining of the attribute prediction value of the first attribute of the to-be-decoded point includes: The decoding end obtains parameter information of a first objective function in a target bitstream; The decoding end determines the attribute prediction value of the first attribute of the point to be decoded according to the parameter information of the objective function and the reconstructed attribute value of the second attribute of the point to be decoded; The reconstructed attribute value of the second attribute of the point to be decoded is determined based on the residual information of the second attribute of the point to be decoded indicated by the target code stream.
25. The method according to claim 15, characterized in that The obtaining of the reconstructed attribute value of the first attribute of the point to be decoded includes: The decoding end obtains parameter information of a second objective function in the target bitstream; The decoding end determines the prediction residual information of the first attribute of the point to be decoded according to the parameter information of the second objective function and the second residual information of the second attribute of the point to be decoded; The decoding end determines a reconstructed attribute value of the first attribute of the to-be-decoded point according to the first residual information of the first attribute and the prediction residual information; The first residual information of the first attribute is indicated by the target code stream.
26. A coding device, characterized in that: include: A first acquisition module, configured to acquire first residual information of a first attribute of a to-be-encoded point, wherein the first residual information is determined based on a second attribute of the to-be-encoded point, wherein the second attribute is an encoded attribute, and the attribute types of the first attribute and the second attribute are different; A generating module is used to generate a target bit stream according to the first residual information.
27. The encoding device according to claim 26, characterized in that The first acquisition module includes: A first acquisition unit, configured to acquire an attribute prediction value of a first attribute of the to-be-encoded point, wherein the attribute prediction value is determined based on a second attribute of the to-be-encoded point; The first determining unit is used to determine first residual information of a first attribute of the to-be-encoded point according to the attribute prediction value.
28. The encoding device according to claim 26, characterized in that The first acquisition module includes: A second determining unit, configured to determine a second objective function according to a second attribute of the reference point set of the to-be-encoded point and second residual information of the first attribute; The third determining unit is used to determine the first residual information of the first attribute of the point to be encoded according to the second objective function and the second residual information of the second attribute of the point to be encoded.
29. A decoding device, characterized in that: include: The second acquisition module is used to acquire a reconstructed attribute value of a first attribute of the point to be decoded, wherein the reconstructed attribute value is determined based on a second attribute of the point to be decoded, wherein the second attribute is a decoded attribute, and the first attribute and the second attribute are of different attribute types.
30. An electronic device, characterized in that: The method comprises a processor and a memory, wherein the memory stores a program or instruction that can be run on the processor, and when the program or instruction is executed by the processor, the steps of the encoding method according to any one of claims 1 to 14 or the steps of the decoding method according to any one of claims 15 to 25 are implemented.
31. A readable storage medium, characterized in that: The readable storage medium stores a program or instruction, and when the program or instruction is executed by the processor, the steps of the encoding method according to any one of claims 1 to 14 or the steps of the decoding method according to any one of claims 15 to 25 are implemented.
32. A chip, characterized in that: The chip includes a processor and a communication interface, the communication interface is coupled to the processor, and the processor is used to run a program or instructions to implement the steps of the encoding method according to any one of claims 1 to 14 or the steps of the decoding method according to any one of claims 15 to 25.
Citation Information
Cited By
Encoding method and apparatus, decoding method and apparatus, and electronic device
EP4797695A1