Data compression method and device
Patent Information
- Application Number
- CN202380100279.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-27
- Publication Date
- 2026-02-13
AI Technical Summary
In the prior art, when there are many or complex moving objects in the processing environment, the data compression performance is poor, making it difficult to effectively improve the compression efficiency of timing-aware data.
The data compression method based on 2D data structure classification is adopted, and the data points in the to-be-compressed data are classified, the first information is used to indicate the type of data points, and different modes are selected according to the characteristics of the data points for prediction or encoding, thereby improving coding efficiency and compression performance.
This method can improve data compression performance in dynamic scanning scenarios, effectively improve coding efficiency, and is suitable for scenarios where there are many or complex moving objects in the environment.
Smart Images

Figure CN121532949A_ABST
Abstract
Description
Data compression method and device Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a data compression method and device. Background Art
[0002] With the rapid development of technologies such as wireless communications, autonomous driving, and artificial intelligence, the generation, storage, and transmission of large amounts of two-dimensional (2D) or three-dimensional (3D) data in communication systems has found a wide range of applications. For example, in scenarios such as map reconstruction and end-to-cloud interaction in autonomous driving, terminals can upload continuously collected perception data (such as road data and location information) to network devices or the cloud for data processing. Since consecutive data frames may have significant correlation or redundant information, data compression schemes based on temporal correlation can be designed to conserve storage resources and improve communication efficiency.
[0003] Currently, 3D temporal data compression can be achieved through the neighbor point elimination algorithm. Specifically, for each point in the current frame, a neighbor search can be performed based on the historical point cloud set, and some neighbor points can be eliminated by setting the distance threshold. Then, the remaining points are compressed according to the compression algorithm, thereby realizing the compressed transmission of temporal perception data.
[0004] However, the above implementation is only applicable to static scanning scenes or scenes with few moving objects in the environment. For scenes with many or complex moving objects in the environment, or for dynamic scanning scenes, there are fewer neighboring points that can be eliminated, so the data compression performance is poor.
[0005] Summary of the Invention
[0006] The embodiments of the present application provide a data compression method and apparatus for improving the compression efficiency of time series-aware data.
[0007] To achieve the above objectives, this application adopts the following technical solutions:
[0008] In a first aspect, a data compression method is provided, which can be performed by a first device. Unless otherwise specified, the first device in this application can refer to the first device itself (for example, a network device, a terminal), or a component in a second device (for example, a processor, a chip, or a chip system, etc.), or a logic module or software that can implement all or part of the functions of the first device. The method includes: obtaining data to be compressed, the data to be compressed including location information of a data point and data information corresponding to the data point; performing data compression on the data to be compressed to obtain target coded data, the target coded data including first information and second information, the first information indicating the type corresponding to the data information in the data to be compressed, the type corresponding to the data information including a non-predictive type and at least one predictive type; the second information including data information corresponding to the non-predictive type in the data to be compressed; and outputting the target coded data.
[0009] In the above embodiment, a data compression method based on 2D data structure classification is designed to indicate the classification of data points, and the type of data points is indicated to the decoding end through the first information. Different modes are selected for prediction or encoding according to the characteristics of the data points, and different compression processing is used for different types of data points, which can effectively improve the encoding efficiency and compression performance.
[0010] In one embodiment, the prediction type corresponding to the data information includes at least one of the following: a first type or a second type, wherein the first type refers to the data point type in the data to be compressed that meets the time series shift prediction condition, and the second type refers to the data point type in the data to be compressed that meets the plane prediction condition.
[0011] In the above embodiment, by classifying the data points in the data to be compressed, such as including types such as translation prediction or plane prediction, the data points of this type of prediction can be encoded and compressed, and the decoding end can restore the data according to the types of historical frame and current frame data points, thereby improving data compression efficiency.
[0012] In one embodiment, the non-prediction type corresponding to the data information includes at least one of the following: a third type or a fourth type, wherein the third type refers to a data point type without data information; and the fourth type refers to a data point type with data information that does not meet the conditions corresponding to the prediction type.
[0013] In the above embodiment, by classifying the data points in the data to be compressed, such as including empty data points, or non-empty data points that cannot be predicted, the encoding end can encode and compress these non-predicted data points separately, so that the decoding end can recover the data according to the corresponding decoding method, thereby improving the data compression efficiency.
[0014] In one embodiment, the prediction type corresponding to the data information includes the fifth type, wherein the fifth type refers to a data point type in the data to be compressed that satisfies a surface prediction condition.
[0015] In the above implementation, the data points in the compressed data are classified and the type of surface prediction can also be included. By performing surface fitting on multiple neighboring points of the historical frame, the data points on the same surface in the current frame can be restored based on the historical frame, thereby improving the data compression efficiency.
[0016] In one embodiment, the data to be compressed includes a first data point, the first data point includes first position information and first data information, and the first data point satisfies the time series translation prediction condition, including: obtaining a first prediction value based on the original coordinates of the reference point in the historical frame and the translation prediction vector; the distance error between the first prediction value and the original coordinates corresponding to the first data point is less than or equal to a first threshold, or the distance error between the data information corresponding to the first prediction value in the target coordinate system and the first data information corresponding to the first data point is less than or equal to a second threshold, wherein the position information of the first prediction value in the target coordinate system is the same as the first position information corresponding to the first data point.
[0017] In the above embodiment, the encoding end can determine whether the data point is a predictable type by judging whether the data point meets the above-mentioned time shift prediction conditions, thereby indicating the type of the data point to the decoding end, so that the decoding end can restore the data based on the historical frame and the type of the data point, thereby improving data compression efficiency.
[0018] In one embodiment, the method further includes: acquiring third information, where the third information indicates coordinate information of a reference point corresponding to the first device, and is used to calculate a translation prediction vector based on positions of the reference point in historical frames and the current frame.
[0019] In the above implementation, the encoder or decoder can obtain third information, such as scanning position information, to calculate the translation prediction vector, and the decoder can correctly restore the compressed data based on the translation prediction vector.
[0020] In one embodiment, the data to be compressed includes a second data point, the second data point includes second position information and second data information, and the second data point satisfies a plane prediction condition, including: fitting processing based on a reference point in a historical frame and multiple neighboring points of the reference point to obtain a prediction plane; obtaining a second prediction value based on the position information corresponding to the second data point and the prediction plane; the distance error between the second prediction value and the original coordinates of the second data point is less than or equal to a third threshold, or the distance error between the data information corresponding to the second prediction value in the target coordinate system and the second data information corresponding to the second data point is less than or equal to a fourth threshold, wherein the second prediction value is on the prediction plane of the historical frame, and the position information of the second prediction value in the target coordinate system is the same as the second position information corresponding to the second data point.
[0021] In the above implementation, the encoding end can determine whether the data point is a predictable type by judging whether the data point meets the above-mentioned plane prediction conditions, thereby indicating the type of the data point to the decoding end, so that the decoding end can restore the data according to the historical frame and the type corresponding to the data point, thereby improving data compression efficiency.
[0022] In one embodiment, the method also includes: obtaining first indication information, the first indication information including at least one of the following information: an indication of the type of data point used, the number of neighboring points corresponding to the plane prediction, the absolute position or offset position of the neighboring points of the plane prediction, the quantization step size and quantization boundary value corresponding to the quantization processing of the original data, or whether the encoded data is to be block processed, or the block size and / or block sliding direction corresponding to the block processing.
[0023] In the above implementation, the encoding end can obtain the configuration information or parameters of the encoding algorithm, thereby determining the type of data point used in the data compression algorithm, etc. The first indication information can be sent by the decoding end, i.e., the second device to the first device, or it can be configured by other network elements, so that the encoding end can align the configuration information or parameters with the decoding end, so that the decoding end can correctly recover the data.
[0024] In one embodiment, the method further includes: obtaining second indication information for indicating that the encoding mode corresponding to the non-prediction type data information is residual encoding based on a historical frame corresponding to the data information, or direct encoding based on the data information.
[0025] In the above embodiment, the encoding end can obtain a non-predictive type encoding algorithm, and the second indication information can be sent by the decoding end, i.e., the second device to the first device, or it can be configured by other network elements, so that the encoding end can align the encoding algorithm with the decoding end, so that the decoding end can correctly recover the data.
[0026] In one embodiment, the second indication information further includes at least one of the following information: a first threshold, a second threshold, a third threshold, a fourth threshold, and indication information of a method for determining a data point type in the data to be encoded.
[0027] In the above implementation, the encoding end can also obtain the threshold corresponding to the translation prediction algorithm, the threshold corresponding to the plane prediction algorithm, or the method for determining the type of data point in the data to be encoded, such as determining the type of each data point by sequential judgment or independent judgment, thereby improving data compression efficiency.
[0028] In one embodiment, the method further includes: determining, based on the first indication information and / or the second indication information, whether the target coded data includes at least one of the following: coded data corresponding to the prediction error value of the first type of data information, coded data corresponding to the prediction error value of the second type of data information, or, position information of multiple neighboring points in the historical frame, and / or position offset values of the position information corresponding to the fourth type of data information and multiple neighboring points in the historical frame, wherein the neighboring point refers to the point with the closest distance to the data point of the current frame in the historical frame.
[0029] In the above embodiment, the encoding end can also determine the encoding mode used for each type of data point through the configured indication information, such as whether the fourth type of data point is directly encoded or residually encoded, whether the prediction type of data point is encoded with the residual value, etc., to further determine the data included in the target encoded data. The encoding end can align the encoding modes corresponding to different types of data points with the decoding end, and can flexibly adjust the encoding algorithm according to communication requirements, so that the decoding end can correctly recover the data and improve data compression performance and flexibility.
[0030] In one embodiment, obtaining the data to be compressed includes: performing coordinate mapping and / or quantization processing on original data corresponding to the original coordinate system of the current frame to obtain data to be encoded corresponding to the target coordinate system.
[0031] In the above implementation, the encoding end may pre-process the original data, that is, may obtain the data to be encoded through coordinate mapping and / or quantization processing, thereby reducing the complexity of the data and improving the efficiency and compression performance of data compression.
[0032] In one embodiment, the method further includes: determining, for each data point included in the data to be encoded, the category that the data point satisfies, one by one, in descending order of data point type priority; and obtaining first information based on the category corresponding to each data point in the data to be encoded.
[0033] In one embodiment, the method includes: obtaining a priority order corresponding to the data point type.
[0034] In a second aspect, a data compression method is provided, which can be performed by a second device. Unless otherwise specified, the second device in this application can refer to the second device itself (for example, a network device, a terminal), or a component in the second device (for example, a processor, a chip, or a chip system, etc.), or a logic module or software that can implement all or part of the functions of the second device. The method includes: obtaining target coded data, the target coded data including first information and second information, the first information indicating the type corresponding to the data information in the data to be compressed, the type corresponding to the data information including a non-predictive type and at least one predictive type; the second information including data information corresponding to the non-predictive type in the data to be compressed; decoding the target coded data to obtain the data to be compressed, the data to be compressed including position information corresponding to the data point and data information corresponding to the data point.
[0035] In one embodiment, the prediction type corresponding to the data information includes at least one of the following: a first type or a second type, wherein the first type refers to the data point type in the data to be compressed that meets the time series shift prediction condition, and the second type refers to the data point type in the data to be compressed that meets the plane prediction condition.
[0036] In one embodiment, the non-prediction type corresponding to the data information includes at least one of the following: a third type or a fourth type, wherein the third type refers to a data point type without data information; and the fourth type refers to a data point type with data information that does not meet the conditions corresponding to the prediction type.
[0037] In one embodiment, the prediction type corresponding to the data information includes the fifth type, wherein the fifth type refers to a data point type in the data to be compressed that satisfies a surface prediction condition.
[0038] In one embodiment, the data to be compressed includes a first data point, the first data point includes first position information and first data information, and the first data point satisfies the time series translation prediction condition, including: obtaining a first prediction value based on the original coordinates of the reference point in the historical frame and the translation prediction vector; the distance error between the first prediction value and the original coordinates corresponding to the first data point is less than or equal to a first threshold, or the distance error between the data information corresponding to the first prediction value in the target coordinate system and the first data information corresponding to the first data point is less than or equal to a second threshold, wherein the position information of the first prediction value in the target coordinate system is the same as the first position information corresponding to the first data point.
[0039] In one embodiment, the method further includes: acquiring third information, where the third information indicates coordinate information of a reference point corresponding to the first device, and is used to calculate a translation prediction vector based on positions of the reference point in historical frames and the current frame.
[0040] In one embodiment, the data to be compressed includes a second data point, the second data point includes second position information and second data information, and the second data point satisfies a plane prediction condition, including: fitting processing based on a reference point in a historical frame and multiple neighboring points of the reference point to obtain a prediction plane; obtaining a second prediction value based on the position information corresponding to the second data point and the prediction plane; the distance error between the second prediction value and the original coordinates of the second data point is less than or equal to a third threshold, or the distance error between the data information corresponding to the second prediction value in the target coordinate system and the second data information corresponding to the second data point is less than or equal to a fourth threshold, wherein the second prediction value is on the prediction plane of the historical frame, and the position information of the second prediction value in the target coordinate system is the same as the second position information corresponding to the second data point.
[0041] In one embodiment, the method also includes: obtaining first indication information, the first indication information including at least one of the following information: an indication of the type of data point used, the number of neighboring points corresponding to the plane prediction, the absolute position or offset position of the neighboring points of the plane prediction, the quantization step size and quantization boundary value corresponding to the quantization processing of the original data, or whether the encoded data is to be block processed, or the block size and / or block sliding direction corresponding to the block processing.
[0042] In one embodiment, target coded data is decoded to obtain data to be compressed, including: obtaining position information corresponding to each data point in the data to be compressed and the type corresponding to the data point based on first information in the target coded data; decoding to obtain data information corresponding to the position information of each data point in the data to be compressed based on the type of the data point and second information, wherein the data information corresponding to the data point of the predicted type is obtained based on historical frame prediction, and the data information corresponding to the data point of the non-predicted type is obtained based on the second information.
[0043] In one embodiment, the method further includes: obtaining second indication information for indicating that the encoding mode corresponding to the non-prediction type data information is residual encoding based on a historical frame corresponding to the data information, or direct encoding based on the data information.
[0044] In one embodiment, the second indication information further includes at least one of the following information: a first threshold, a second threshold, a third threshold, a fourth threshold, and indication information of a method for determining a data point type in the data to be encoded.
[0045] In one embodiment, the method further includes: determining, based on the first indication information and / or the second indication information, whether the target coded data includes at least one of the following: coded data corresponding to the prediction error value of the first type of data information, coded data corresponding to the prediction error value of the second type of data information, or, position information of multiple neighboring points in the historical frame, and / or position offset values of the position information corresponding to the fourth type of data information and multiple neighboring points in the historical frame, wherein the neighboring point refers to the point with the closest distance to the data point of the current frame in the historical frame.
[0046] In one embodiment, the method further includes: performing coordinate mapping and / or inverse quantization processing on the data to be compressed corresponding to the target coordinate system to obtain restored data corresponding to the original coordinate system.
[0047] In a third aspect, a communication device is provided, which may be the first device in the above-mentioned first aspect, or a device including the above-mentioned encoding end function, or a module in the first device in the above-mentioned first aspect, such as a chip, a chip system or a circuit, or a logical node, logical module or software that can realize part or all of the encoding end functions.
[0048] Alternatively, the communication device may be the second device in the second aspect described above, or a device including the above-mentioned decoding end function, or a module in the second device in the second aspect described above, such as a chip, a chip system or a circuit, or a logical node, a logical module or software that can implement part or all of the decoding end functions.
[0049] The communication device includes modules, units, or means corresponding to the above-mentioned method, which can be implemented by hardware, software, or hardware executing corresponding software implementation. The hardware or software includes one or more modules or units corresponding to the above-mentioned functions.
[0050] In conjunction with the third aspect above, in one possible implementation, the communication device may include a processing module and a transceiver module. The processing module may be configured to implement the processing functions described in any of the above aspects and any possible implementations thereof. The processing module may, for example, be a processor. The transceiver module, also referred to as a transceiver unit, may be configured to implement the transmitting and / or receiving functions described in any of the above aspects and any possible implementations thereof. The transceiver module may be comprised of a transceiver circuit, a transceiver, a transceiver, or a communication interface.
[0051] In combination with the third aspect above, in a possible implementation, the transceiver module includes a sending module and a receiving module, which are respectively used to implement the sending and receiving functions in any of the above aspects and any possible implementations thereof.
[0052] In a fourth aspect, a communication device is provided, comprising: a processor; the processor is configured to be coupled to a memory, read instructions from the memory, and then execute the method described in any of the above aspects according to the instructions. The communication device can be the encoding end described in the first aspect and any possible implementation thereof, or a device including the functions of the encoding end, or a module in the encoding end, such as a chip, chip system, or circuit, or a logical node, logical module, or software that can implement some or all of the functions of the encoding end.
[0053] Alternatively, the communication device can be the decoding end in the above-mentioned second aspect and any possible implementation thereof, or a device including the above-mentioned decoding function, or a module in the above-mentioned decoding end, such as a chip, a chip system or a circuit, or a logical node, logical module or software that can realize part or all of the decoding end functions.
[0054] In combination with the fourth aspect above, in a possible implementation, the communication device further includes a memory, which is used to store necessary program instructions and data.
[0055] In conjunction with the fourth aspect above, in one possible implementation, the communication device is a chip or a chip system. Optionally, when the communication device is a chip system, it can be composed of a chip or include a chip and other discrete devices.
[0056] In a fifth aspect, a communication device is provided, comprising: a processor and an interface circuit; the interface circuit is configured to receive a computer program or instruction and transmit it to the processor; and the processor is configured to execute the computer program or instruction, so that the communication device performs the method described in any of the above aspects. The communication device may be the encoding end described in the first aspect and any possible implementation thereof, or a device including the encoding function, or a module in the encoding end, such as a chip, chip system, or circuit, or a logical node, logical module, or software capable of implementing some or all of the encoding end functions.
[0057] Alternatively, the communication device can be the decoding end in the above-mentioned second aspect and any possible implementation thereof, or a device including the above-mentioned decoding function, or a module in the above-mentioned decoding end, such as a chip, a chip system or a circuit, or a logical node, logical module or software that can realize part or all of the decoding end functions.
[0058] In conjunction with the fifth aspect above, in one possible implementation, the communication device is a chip or a chip system. Optionally, when the communication device is a chip system, it can be composed of a chip or include a chip and other discrete devices.
[0059] In a sixth aspect, a computer-readable storage medium is provided, wherein instructions are stored in the computer-readable storage medium. When the computer-readable storage medium is run on a computer, the computer can execute the method described in any one of the above aspects.
[0060] In a seventh aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the method described in any one of the above aspects.
[0061] In an eighth aspect, a communication system is provided, which includes a communication device for executing the method described in the above-mentioned first aspect and any possible implementation thereof, and a communication device for executing the method described in the above-mentioned second aspect and any possible implementation thereof.
[0062] Among them, the technical effects brought about by any possible implementation method in the second to eighth aspects can refer to the technical effects brought about by different possible implementation methods in the above-mentioned first aspect, and will not be repeated here.
[0063] It is understandable that, provided that the solutions are not contradictory, the solutions in each aspect can be combined. BRIEF DESCRIPTION OF THE DRAWINGS
[0064] FIG1 is a schematic diagram of an interaction of data compression transmission;
[0065] FIG2 is a schematic diagram of a data compression algorithm;
[0066] FIG3 is a schematic diagram of the structure of a communication system provided in an embodiment of the present application;
[0067] FIG4 is a schematic structural diagram of a communication device provided in an embodiment of the present application;
[0068] FIG5 is a flow chart of a data compression method provided in an embodiment of the present application;
[0069] FIG6 is a schematic diagram of a coordinate mapping provided in an embodiment of the present application;
[0070] FIG7 is a schematic diagram of a 2D data structure obtained in a data compression algorithm provided in an embodiment of the present application;
[0071] FIG8 is a schematic diagram of data points that meet the time series shift prediction conditions provided by an embodiment of the present application;
[0072] FIG9 is a schematic diagram of data points that meet plane prediction conditions provided by an embodiment of the present application;
[0073] FIG10 is a schematic diagram of a 2D type graph obtained in a data compression calculation provided in an embodiment of the present application;
[0074] FIG11 is a schematic diagram of determining the type of a data point in data to be encoded according to an embodiment of the present application;
[0075] FIG12 is a schematic diagram of a process of determining a plane and solving a prediction point at an encoding end according to an embodiment of the present application;
[0076] FIG13 is a schematic diagram of block processing at an encoding end provided in an embodiment of the present application;
[0077] FIG14 is a schematic diagram of first indication information provided in an embodiment of the present application;
[0078] FIG15 is a schematic diagram of a process for determining a data point type at an encoding end and a decoding end according to an embodiment of the present application;
[0079] FIG16 is a schematic diagram of a method for encoding data information of a fourth type of data point provided by an embodiment of the present application;
[0080] FIG17 is a schematic diagram of the structure of target coding data provided in an embodiment of the present application;
[0081] FIG18 is an interactive diagram of a data compression algorithm provided in an embodiment of the present application;
[0082] FIG19 is a simulation diagram of the performance of various data compression algorithms provided in an embodiment of the present application;
[0083] Figure 20 is a schematic diagram of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0084] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments.
[0085] First, the implementation background of this application is described with reference to the accompanying drawings.
[0086] Due to the rapid development of technologies such as wireless communication, autonomous driving, and artificial intelligence, a large amount of 2D or 3D data is generated in communication systems. For example, sensors or sensing devices on vehicle-mounted terminals can collect road data, and augmented reality (AR) devices can collect surrounding environment data. The collected 2D or 3D data can be collectively referred to as perception data, which can include 2D or 3D data points related to information such as distance, color, and normal. An embodiment of the present application provides an implementation method for compression encoding of perception data. As shown in FIG1 , a sensing device is used to collect perception data and obtain continuous frames, including a first frame, a second frame, etc., which are encoded and compressed frame by frame according to a configured encoding algorithm to generate a compressed bit stream and transmit it to a receiving end, for example, a base station. Thus, the receiving end can decode frame by frame according to the configured decoding algorithm to recover the data.
[0087] Among them, the method of collecting perception data can include static scanning and dynamic scanning. Static scanning refers to a scene where the scanning device does not move, and continuous scanning can collect the moving position and movement trajectory of objects in the scene. Dynamic scanning refers to a scene where the scanning device moves. For example, for a vehicle-mounted terminal, perception data can be collected during movement. The current frame can collect data that is blocked, has blind spots, or has not been scanned in the historical frame (such as the previous frame, or the previous n frames), thereby improving the performance of map construction and interactive processing. However, the data collected by adjacent frames (or historical frames) may differ greatly, which increases the complexity of compressing time-series perception data.
[0088] In the embodiments of the present application, the encoding and decoding process can be performed frame by frame. Therefore, the current frame can be used to represent the frame being encoded and decoded by the encoding or decoding end at the current moment, and the historical frame can be used to represent the frames processed before the current moment. For example, the frame processed at the previous moment can be called the previous frame, and the frames processed n moments before can be called the previous n frames. The adjacent frames of the current frame can include the previous frame and the next frame, and the next frame is the frame processed at the next moment after the current moment. This will not be repeated later.
[0089] At present, there is a temporal point cloud data compression algorithm based on the elimination of neighboring points of 3D data, which specifically includes: the encoder searches for neighboring points of each point cloud of the current frame based on the point cloud set of the historical frame, eliminates some neighboring points through the set distance threshold, and then compresses and transmits the remaining points according to the octree or Draco method. Among them, the octree is a data structure based on space division. The encoder can divide the three-dimensional space into eight subspaces, and then divide each subspace into eight subspaces, and so on. Each subspace includes a part of the point cloud data of the space. For example, as shown in Figure 2, each subspace as a leaf node can be encoded by 0 or 1, and the encoder converts each subspace into a coding block. Finally, the encoded octree data can be compressed, stored or transmitted, such as by using commonly used compression methods such as Huffman coding.
[0090] However, this implementation is suitable for static scanning scenes or scenes with few moving objects in the environment. For scenes with many or complex moving objects in the environment, or for dynamic scanning scenes, there are fewer neighboring points that can be eliminated, so the data compression performance is poor.
[0091] The present application provides a data compression method and device, which is based on a compression method for converting 3D data into a 2D structure. According to the temporal correlation of 2D data, the compression rate of the perception data can be effectively improved. For example, in a static scanning scenario, after the encoding end converts the 3D perception data into a 2D structure, the residual of adjacent frames can be calculated based on the same position in the 2D structure. Combined with entropy coding compression, it can effectively remove redundant information in the temporal sequence and obtain a larger compression gain. In addition, in a dynamic scanning scenario, due to the movement of the scanning position, the same position of the previous and next frames in the 2D structure cannot be mapped to the same point in the 3D space. The direct residual cannot obtain a large compression gain. The compression performance in dynamic scenarios can be improved by using a variety of prediction algorithms based on the 2D structure.
[0092] The embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0093] The method provided in this application can be used in various communication systems. The method provided in this application is described below using the communication system 10 shown in Figure 3 as an example. Figure 2 is only a schematic diagram and does not constitute a limitation on the applicable scenarios of the technical solution provided in this application.
[0094] Figure 3 is a schematic diagram illustrating a possible, non-limiting system. As shown in Figure 3, the communication system 10 includes a RAN 100 and a core network (CN) 200. The RAN 100 includes at least one RAN node (such as 110a and 110b in Figure 3, collectively referred to as 110) and at least one terminal (such as 120a-120j in Figure 3, collectively referred to as 120). The RAN 100 may also include other RAN nodes, such as wireless relay equipment and / or wireless backhaul equipment (not shown in Figure 3). The terminal 120 is connected to the RAN node 110 wirelessly. The RAN node 110 is connected to the core network 200 wirelessly or by wire. The core network equipment in the core network 200 and the RAN node 110 in the RAN 100 can be different physical devices, or they can be the same physical device that integrates the core network logical functions and the radio access network logical functions.
[0095] The RAN 100 may be a cellular system related to the Third Generation Partnership Project (3GPP), such as a 4G or 5G mobile communication system, or a future-oriented evolutionary system (such as a 6G mobile communication system). The RAN 100 may also be an open access network (O-RAN or ORAN), a cloud radio access network (CRAN), or a wireless fidelity (WiFi) system. The RAN 100 may also be a communication system that integrates two or more of the above systems.
[0096] RAN node 110, sometimes also referred to as access network equipment, RAN entity, network equipment, or access node, constitutes part of the communication system and facilitates wireless access for terminals. Multiple RAN nodes 110 in the communication system 10 can be of the same type or different types. In some scenarios, the roles of RAN node 110 and terminal 120 are relative. For example, network element 120i in Figure 3 can be a helicopter or drone, which can be configured as a mobile base station. For terminal 120j accessing RAN 100 via network element 120i, network element 120i is a base station; however, for base station 110a, network element 120i is a terminal. RAN node 110 and terminal 120 are sometimes referred to as communication devices. For example, in Figure 3, 110a and 110b can be understood as communication devices with base station functionality, and network elements 120a-120j can be understood as communication devices with terminal functionality.
[0097] In one possible scenario, a RAN node may be a base station, an evolved NodeB (eNodeB), an access point (AP), a transmission reception point (TRP), a next generation NodeB (gNB), a next generation base station in a sixth generation (6G) mobile communication system, a base station in a future mobile communication system, or an access node in a WiFi system. A RAN node may be a macro base station (such as 110a in FIG3 ), a micro base station or an indoor station (such as 110b in FIG3 ), a relay node or a donor node, or a wireless controller in a CRAN scenario. Optionally, a RAN node may also be a server, a wearable device, a vehicle or an onboard device. For example, an access network device in vehicle to everything (V2X) technology may be a road side unit (RSU). All or part of the functions of the RAN node in this application may also be implemented by software functions running on hardware, or by virtualized functions instantiated on a platform (such as a cloud platform). The RAN node in this application may also be a logical node, a logical module or software that can implement all or part of the RAN node functions.
[0098] In another possible scenario, multiple RAN nodes collaborate to assist the terminal in achieving wireless access, and different RAN nodes implement part of the functions of the base station respectively. For example, the RAN node can be a centralized unit (CU), DU, CU-control plane (CP), CU-user plane (UP), or RU. The CU and DU can be set separately, or they can be included in the same network element, such as the baseband unit (BBU). The RU can be included in a radio frequency device or radio frequency unit, such as a remote radio unit (RRU), an active antenna unit (AAU), or a remote radio head (RRH).
[0099] In different systems, CU (or CU-CP and CU-UP), DU or RU may also have different names, but those skilled in the art can understand their meanings. For example, in the ORAN system, CU may also be called O-CU (Open CU), DU may also be called O-DU, CU-CP may also be called O-CU-CP, CU-UP may also be called O-CU-UP, and RU may also be called O-RU. For the convenience of description, this application uses CU, CU-CP, CU-UP, DU and RU as examples for description. Any unit of CU (or CU-CP, CU-UP), DU and RU in this application can be implemented by a software module, a hardware module, or a combination of a software module and a hardware module.
[0100] A terminal may also be referred to as a terminal device, user equipment (UE), mobile station, mobile terminal, etc. Terminals can be widely used in various scenarios, such as device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), Internet of Things (IOT), virtual reality, augmented reality, industrial control, autonomous driving, telemedicine, smart grid, smart furniture, smart office, smart wearable, smart transportation, smart city, etc. A terminal may be a mobile phone, tablet computer, computer with wireless transceiver function, wearable device, vehicle, drone, helicopter, airplane, ship, robot, robotic arm, smart home device, etc. The embodiments of the present application do not limit the device form of the terminal.
[0101] The terminal can also be a virtual reality (VR) terminal, an AR terminal, or a mixed reality (MR) terminal. VR terminals, AR terminals, and MR terminals can all be referred to as extended reality terminals. An XR terminal can be, for example, a head-mounted device (such as a helmet, a head-mounted display (HMD) or glasses), an all-in-one machine, a TV, a monitor, a car, a vehicle-mounted device, a tablet or a smart screen, etc. The XR terminal can access the network wirelessly or wired, for example, through a WiFi or 5G system. The XR terminal can present XR data to the user, and the user can experience a variety of XR services by wearing or using the XR terminal.
[0102] The communication system 10 shown in FIG3 is for illustrative purposes only and is not intended to limit the technical solutions of this application. Those skilled in the art will appreciate that, in a specific implementation, the communication system 10 may further include other devices, and the number of RAN nodes and terminals may be determined based on specific needs and is not limited.
[0103] Optionally, each network element or device (such as a RAN node or terminal, etc.) in Figure 3 of the present application can also be referred to as a communication device, which can be a general device or a dedicated device. This application does not make specific limitations on this.
[0104] Optionally, the relevant functions of each network element or device (such as a RAN node or terminal, etc.) in Figure 3 of this application can be implemented by a single device, or can be implemented by multiple devices together, or can be implemented by one or more functional modules within a single device. This application does not impose specific limitations on this. It is understood that the above functions can be network elements in hardware devices, software functions running on dedicated hardware, or a combination of hardware and software, or virtualized functions instantiated on a platform (such as a cloud platform).
[0105] In specific implementations, each network element or device (e.g., a RAN node or terminal) in FIG. 3 of the present application may adopt the structure shown in FIG. 4 or include the components shown in FIG. FIG. 4 illustrates a schematic diagram of the hardware structure of a communication device applicable to the present application. The communication device 40 includes at least one processor 401 and at least one communication interface 404 for implementing the method provided herein. The communication device 40 may also include a communication circuit 402 and a memory 403.
[0106] The processor 401 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present application.
[0107] The communication link 402 may include a path for transmitting information between the above components, such as a bus.
[0108] Communication interface 404 is used to communicate with other devices or communication networks. Communication interface 404 can be any transceiver-like device, such as an Ethernet interface, a radio access network (RAN) interface, a wireless local area network (WLAN) interface, a transceiver, a pin, a bus, or a transceiver circuit.
[0109] The memory 403 can be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited to this. The memory can be independent and coupled to the processor 401 via the communication line 402. The memory 403 can also be integrated with the processor 401. The memory provided in this application can generally be non-volatile.
[0110] Among them, the memory 403 is used to store computer-executable instructions involved in executing the solution provided by this application, and is controlled by the processor 401. The processor 401 is used to execute the computer-executable instructions stored in the memory 403, thereby implementing the method provided by this application. Alternatively, optionally, in this application, the processor 401 may also perform processing-related functions in the method provided in the following embodiments of this application, and the communication interface 404 is responsible for communicating with other devices or communication networks, which is not specifically limited in this application.
[0111] Optionally, the computer-executable instructions in this application may also be referred to as application code, which is not specifically limited in this application.
[0112] The coupling in this application is an indirect coupling or communication connection between devices, units or modules, which can be electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
[0113] As an embodiment, the processor 401 may include one or more CPUs, such as CPU0 and CPU1 in FIG. 4 .
[0114] As an embodiment, the communication device 40 may include multiple processors, such as processor 401 and processor 407 in FIG4 . Each of these processors may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. The processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0115] As an embodiment, the communication device 40 may further include an output device 405 and / or an input device 406. The output device 405 is coupled to the processor 401 and can output / input information in a variety of ways. For example, the output device 405 / input device 406 can be an I / O interface, and the output device 405 can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device 406 is coupled to the processor 401 and can receive user input in a variety of ways. For example, the input device 406 can be a mouse, a keyboard, a touch screen device, or a sensor device.
[0116] It is understandable that the composition structure shown in Figure 4 does not constitute a limitation on the communication device. In addition to the components shown in Figure 4, the communication device may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently.
[0117] The method provided by the present application will be described below with reference to the accompanying drawings. Each network element in the following embodiments may include some or all of the components shown in FIG4 , which will not be described in detail.
[0118] It can be understood that the message names between network elements or the names of parameters in the messages in the following embodiments of the present application are only examples, and other names may be used in specific implementations, and the present application does not make any specific limitations on this.
[0119] It is understood that in this application, " / " can indicate that the objects associated with each other are in an "or" relationship, for example, A / B can mean A or B; "and / or" can be used to describe that there are three relationships between the associated objects, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. In addition, expressions similar to "at least one of A, B and C" or "at least one of A, B or C" are usually used to indicate any of the following: A exists alone; B exists alone; C exists alone; A and B exist at the same time; A and C exist at the same time; B and C exist at the same time; A, B and C exist at the same time. The above uses A, B and C as an example to illustrate the optional items of the item. When there are more elements in the expression, the meaning of the expression can be obtained according to the above rules.
[0120] In order to facilitate the description of the technical solutions of the present application, in the present application, words such as "first" and "second" may be used to distinguish between technical features with the same or similar functions. The words such as "first" and "second" do not limit the quantity and execution order, and the words such as "first" and "second" do not necessarily limit them to be different. In the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described as "exemplary" or "for example" should not be interpreted as being more preferred or more advantageous than other embodiments or design. The use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete way for easy understanding.
[0121] It is understood that the "embodiment" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, the various embodiments in the entire specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It is understood that in the various embodiments of the present application, the size of the sequence number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the present application.
[0122] It can be understood that in this application, "when", "if" and "if" all mean that corresponding processing will be taken under certain objective circumstances, and do not limit the time, nor do they require judgment actions when implementing them, nor do they mean that there are other limitations.
[0123] The term "simultaneously" in this application may be understood as at the same time point, within a period of time, or within the same cycle.
[0124] It is understood that some optional features in this application may, in certain scenarios, be implemented independently of other features, such as the solution on which they are currently based, to solve corresponding technical problems and achieve corresponding effects. They may also be combined with other features in certain scenarios as needed. Accordingly, the devices provided in this application may also implement these features or functions accordingly, which will not be described in detail here.
[0125] It is understandable that the same step or steps or technical features with the same function in different embodiments of the present application can be referenced to each other.
[0126] It is understood that in this application, the RAN node and / or terminal may perform some or all of the steps in this application. These steps are merely examples, and this application may also perform other steps or variations of various steps. In addition, the steps may be performed in a different order than presented in this application, and it is possible that not all steps in this application need to be performed.
[0127] In this application, the term "RAN node" can be expressed in different ways, such as "network device." Unless otherwise specified, the term "network device" is used throughout this application. The term "network device" is a reference to an access network device (e.g., a base station).
[0128] The data compression method in this application can be interactively executed by a first device and a second device. Unless otherwise specified, the first device in this application can refer to the first device itself (for example, a network device, a terminal), or a component in the first device (for example, a processor, an encoder, a chip, or a chip system, etc.), or a logic module or software that can implement all or part of the functions of the first device. Similarly, the second device in this application can refer to the second device itself (for example, a network device, a terminal), or a component in the second device (for example, a processor, a decoder, a chip, or a chip system, etc.), or a logic module or software that can implement all or part of the functions of the second device.
[0129] It can be understood that in this application, "sending certain information (such as first configuration information) to (such as a terminal)" can be understood as the destination end of the information being the terminal. It can include sending the information to the terminal directly or indirectly. "Receiving certain information (such as first indication information) from (such as a terminal)" can be understood as the source end of the information being the terminal, which can include receiving information from the terminal directly or indirectly. The information may be processed as necessary between the source end and the destination end of the information transmission, such as format changes, etc., but the destination end can understand the valid information from the source end. Similar expressions in this application can be understood similarly and will not be repeated here.
[0130] It can be understood that in this application, "sending certain information (such as first indication information) to (such as a network device)" can be understood as the destination end of the information being the network device. It can include sending the information to the network device directly or indirectly. "Receiving certain information (such as first configuration information) from (such as a network device)" can be understood as the source end of the information being the network device, which can include receiving information from the network device directly or indirectly. The information may be processed as necessary between the source end and the destination end of the information transmission, such as format changes, etc., but the destination end can understand the valid information from the source end. Similar expressions in this application can be understood similarly and will not be repeated here.
[0131] It is understandable that the method provided below in this application uses a network device and a terminal as an example of the execution subject of the interaction diagram to illustrate the method, but this application does not limit the execution subject of the interaction diagram. For example, the method executed by the network device in this application can also be executed by a module of the network device (such as a chip, a chip system, or a processor), and can also be implemented by a logical node, a logical module, or software that can realize all or part of the functions of the network device; the method executed by the terminal in this application can also be executed by a module of the terminal (such as a chip, a chip system, or a processor), and can also be implemented by a logical node, a logical module, or software that can realize all or part of the functions of the terminal.
[0132] The present application provides a data compression method. Exemplarily, the method can be applied to a first device and a second device. The first device or the second device can be any node in the communication system shown in Figure 3, or a module or chip in the node. The first device can act as an encoding end to encode and compress time-series perception data, and the second device can act as a decoding end to decode and recover data.
[0133] As shown in FIG5 , the method may include the following steps:
[0134] 501: The first device obtains the data to be compressed.
[0135] The first device may be used as a scanning device to collect sensory data, and the collected sensory data may be used as the data to be compressed or the sensory data after preprocessing may be used as the data to be compressed. Alternatively, the first device may obtain the data to be compressed from other devices, which is not limited in this application.
[0136] For example, the data to be compressed can be as shown in FIG6 . The original data collected by the sensing device is based on the spherical coordinate system. The three-dimensional data is indicated by the distance r from the point to the origin. Alternatively, the data to be compressed can also be data in a Cartesian coordinate system, represented by the three-dimensional coordinates (x, y, z) corresponding to the X-axis, Y-axis, and Z-axis. This application does not specifically limit the coordinate system used for the compressed data.
[0137] The data to be compressed may include position information and data information corresponding to the position information. The position information may be used to indicate the corresponding position of the data information in the data to be compressed (such as a 2D or 3D data structure), and is not limited to indicating the position in the spatial scene.
[0138] In other words, the encoder can separate the data to be compressed into position information indicating a location and data information corresponding to the indicated location, so that the encoder can subsequently perform separate encoding and compression on the data information within the data to be compressed. For example, the encoder can use two-dimensional data in 3D data as position information and the third-dimensional data as data information at that location, thereby designing a 2D data structure diagram and indicating the locations of data points within the 2D data structure diagram.
[0139] For example, the encoder can convert the vertical angle θ and the horizontal angle in the spherical coordinate system into As the position information, the corresponding distance value r is used as the data information; alternatively, the vertical angle θ and the distance value r in the spherical coordinate system can be used as the position information, and the corresponding horizontal angle As data information, etc. For another example, the values of the X-axis and Y-axis in the Cartesian coordinate system can be used as position information, and the value of the Z-axis can be used as data information, etc.
[0140] In one embodiment, step 501 may specifically include the following process: the first device performs coordinate mapping and / or quantization processing on the original data corresponding to the original coordinate system of the current frame to obtain the data to be encoded corresponding to the target coordinate system.
[0141] Coordinate mapping specifically refers to the process of mapping sensory data from an original coordinate system to a target coordinate system. For example, the original Cartesian-based 3D data collected by a sensor can be mapped to spherical coordinates using a Cartesian-to-spherical coordinate mapping algorithm to obtain the encoded data.
[0142] For example, the mapping algorithm from the Cartesian coordinate system to the spherical coordinate system may satisfy the following formula:
[0143] It should be noted that the present application does not specifically limit the original coordinate system or the target coordinate system. For example, the target coordinate system may be a spherical coordinate system or a cylindrical coordinate system.
[0144] In addition, quantization refers to the process of approximating the continuous values of data (or a large number of possible discrete values) to a finite number (or fewer) discrete values according to a certain quantization step size. For example, the first device can select a quantization step size to quantize each dimension of data separately. For example, the first device can quantize the vertical angle θ according to a quantization step size of 1°. The vertical angle θ with a value of 0°~1° can be quantized to 0, and the vertical angle θ with a value of 1°~2° can be quantized to 1. The vertical angle θ with a value of 2°~3° can be quantized to 2, and so on. Then, for the vertical angle θ in the spherical coordinate system with a value range of 0°~180°, based on the quantization step size, it can be quantized into 180 discrete values (0,1,2,3,4,5,...,179), where the angle values 0° and 180° can be quantization boundary values. Through a similar quantization algorithm, the horizontal angle The quantization step size and quantization boundary value corresponding to each coordinate can be determined according to the configured quantization parameters, which are not specifically limited in this application.
[0145] Exemplarily, the first device can obtain a 2D data structure diagram as shown in FIG7 based on the mapping and / or quantization processing of the spherical coordinates. In the 2D data structure diagram, each block represents a data point, each data point corresponds to two-dimensional position information, and each data point corresponds to data information. The data information can be the distance information from the point to the scanning position, or the projection distance of the point on the XOY plane. As shown in FIG7 , the R value filled in each data point is used to indicate the data information corresponding to the data point. In the 2D data structure diagram, there may be some two-dimensional positions that do not have corresponding data information, and the fill value here is empty.
[0146] 502: The first device performs data compression according to the data to be compressed to obtain target encoded data.
[0147] 503: The first device outputs target coded data, and the corresponding second device obtains the target coded data.
[0148] Among them, the target coding data includes first information and second information, the first information indicates the type corresponding to the data information in the data to be compressed, and the type corresponding to the data information includes a non-prediction type and at least one prediction type; the second information includes data information corresponding to the non-prediction type in the data to be compressed.
[0149] That is, in the embodiment of the present application, by classifying the data points in the 2D data structure diagram obtained above, the type corresponding to each data point (or each data information, including data points whose data information is empty) is obtained. Then, the first device can generate first information based on the type of each data point and send it to the second device. In addition, after obtaining the 2D data structure diagram in the embodiment of the present application, second information can be generated based on the data information corresponding to the data points in the 2D data structure diagram and sent to the second device.
[0150] Specifically, the method for classifying data points may include, for example, that the first device divides each data point (i.e., each data information, including data points with empty data information) into a prediction type and a non-prediction type based on whether the data point in the current frame can be predicted based on the data point in the historical frame; further optionally, the type of the data point may also include at least one prediction type predicted according to different prediction algorithms, such as the first type and / or the second type.
[0151] Based on the above-mentioned data point classification method, the first device can select different encoding modes for filtering or encoding according to the different types of data points, thereby improving compression performance. For example, the encoding end can filter data points of the prediction type, that is, there is no need to encode the data information corresponding to the data points of the prediction type. If the decoding end determines that the data point is of the prediction type, it can predict the data point in the current frame based on the prediction algorithm and the data points restored in the historical frame.
[0152] In one embodiment, the prediction type corresponding to the data information may include a first type, wherein the first type refers to a data point type in the data to be compressed that satisfies a temporal shift prediction condition. Shift prediction can also be understood as line prediction, i.e., for a scene where the scanning position is moving or stationary, the position of a point in a historical frame corresponds to a point in the current frame after a shift, or the scanning position of a historical frame corresponds to the scanning position of the current frame after a shift. The encoding and decoding process can utilize this characteristic to predict the coordinate information or data information of the point in the current frame based on the coordinate information or data information of the point in the historical frame.
[0153] Specifically, the first device may determine that a data point satisfies the time series shift condition through the following method.
[0154] For example, as shown in FIG8 , the scanning position in the historical frame is s1, the scanning position in the current frame is s2, and the motion vector corresponding to the scanning position can be For the same position in the 2D data structure diagram, the 3D coordinate points of the previous and next frames are p1 and p2 respectively, where the coordinates of p1 may be predicted by the decoding end, or may be fed back by the encoding end to the decoding end for predicting and recovering data.
[0155] Then, the first device can The predicted value p′2 is obtained. Based on the configured translation prediction threshold t1, the first device determines the error value between the predicted value and the true value of the point. For example, the error value is It can be determined that the point meets the timing shift condition, and the decoding end can The predicted coordinates of p2 are recovered and are p′2.
[0156] It should be noted that if the data to be compressed is processed by coordinate mapping, the first device determines whether the data point meets the translation prediction condition or whether it meets other prediction conditions. It can be based on the original coordinates of the perceived data, or it can be based on the current coordinates of the data to be compressed.
[0157] Based on the above solution, in one embodiment, if the data to be compressed includes a first data point, the first data point includes first position information and first data information, and the first device can obtain a first prediction value based on the original coordinates of the reference point in the historical frame and the translation prediction vector, then the first data point satisfies the time series translation prediction condition, which may include:
[0158] The error value between the first predicted value (e.g., p′2 in FIG. 8 ) and the original coordinates corresponding to the first data point (e.g., p1 in FIG. 8 ) is less than or equal to a first threshold value (e.g., t1 described in FIG. 8 ), or the error value between the data information corresponding to the first predicted value in the target coordinate system and the first data information corresponding to the first data point is less than or equal to a second threshold value. The position information of the first predicted value in the target coordinate system is the same as the first position information corresponding to the first data point. Optionally, the reference point may be a scanning position or other preset reference position for predicting data.
[0159] Optionally, in one embodiment, the first device and / or the second device may further obtain third information, where the third information is used to indicate the coordinate information of the reference point corresponding to the first device, and is used to calculate the translation prediction vector based on the position of the reference point in the historical frame and the current frame. Exemplarily, the third information may include the coordinate information of a reference point such as a scanning position, in which case the first device and / or the second device may perform calculations based on the coordinate information of the scanning position to determine the translation prediction vector of the current frame based on the historical frame; or, the third information may include the moving speed of the scanning position, in which case the first device and / or the second device may perform calculations based on the moving speed of the scanning position and the time difference between the current frame and the historical frame to determine the translation prediction vector of the current frame based on the historical frame. This application does not limit the specific implementation method or algorithm of the above-mentioned third information.
[0160] In one embodiment, the prediction type corresponding to the data information may include a second type, where the second type refers to a data point type in the data to be compressed that satisfies a plane prediction condition. Plane prediction can also be understood as a prediction, i.e., for a scene where the scanning position is moving or stationary, if a point on a plane in a historical frame is located on the same plane as a point in the current frame, the encoding and decoding process can utilize this property to predict the coordinate information or data information of the point in the current frame based on the coordinate information or data information of the point in the historical frame.
[0161] Specifically, the first device may determine whether a data point meets the plane prediction condition through the following method.
[0162] For example, as shown in FIG9 , for a dynamic scanning scene, the scanning position in the historical frame is s1, the scanning position in the current frame is s2, and the motion vector corresponding to the scanning position can be For the same position in the 2D data structure diagram, the 3D coordinate points of the previous and next frames corresponding to each other are p1 and p2 respectively. p1 and p2 may be located on the same plane. The coordinates of p1 may be predicted by the decoding end, or may be fed back by the encoding end to the decoding end for predicting and recovering data.
[0163] Then, the first device can make a prediction based on p1 and its neighboring points (e.g., based on a fitting algorithm) to obtain the plane C where the point is located. If the direction in which the scanning position s2 perceives p2 is the same as the direction in which the scanning position s1 perceives p1 (e.g., vertical angle and azimuth), the first device can calculate the projection point of s2 on plane C in that direction, i.e., obtain the predicted point p′2 of p2. Based on the configured plane prediction threshold t2, if the first device determines that the error between the predicted value of the point and the true frame does not exceed the threshold, such as the error value is ≤t2, then the decoder can recover the predicted coordinates of p2, which is p′2.
[0164] Based on the above solution, in one embodiment, if the data to be compressed includes a second data point, and the second data point includes second position information and second data information, the first device may perform fitting processing based on the reference point and multiple neighboring points of the reference point in the historical frame to obtain a predicted plane (such as plane C shown in FIG. 9 ), and obtain a second predicted value based on the position information corresponding to the second data point and the predicted plane; then the second data point satisfies the plane prediction condition, including:
[0165] The error between the second predicted value (e.g., p′2 in FIG. 9 ) and the original coordinates of the second data point (e.g., p1 in FIG. 9 ) is less than or equal to a third threshold (e.g., t2 in FIG. 9 ), or the error between the data information corresponding to the second predicted value in the target coordinate system and the second data information corresponding to the second data point is less than or equal to a fourth threshold. The second predicted value is on the prediction plane of the historical frame and corresponds to the same position in the 2D data structure diagrams of the previous and next frames.
[0166] It should be noted that the prediction types of the data points mentioned above in this application are only examples. During the specific implementation process, in addition to the aforementioned translation prediction or plane prediction, it can also include a fifth type such as surface prediction, and / or other geometric model prediction methods, such as data points that meet the prediction conditions of other functions (the function may be describing other complex models, such as other lines, surfaces, bodies, etc.). This application does not limit this.
[0167] In addition, it should be noted that the setting of each threshold in the above embodiment can be determined based on the compression performance requirements that the data compression algorithm needs to meet, and this application does not provide specific explanations for this.
[0168] In one embodiment, the non-prediction type corresponding to the data information includes at least one of the following: a third type or a fourth type, wherein the third type refers to a data point type without data information; and the fourth type refers to a data point type with data information that does not meet the conditions corresponding to the prediction type.
[0169] Among them, the data information of a certain data point may be empty, then the encoding end does not need to perform data compression encoding on the point, and the receiving end can restore the data information to empty according to the data point type when decoding and restoring the data. For the fourth type of data point, since it does not meet any prediction condition, the encoding end can directly encode the data information of the data point, or it can perform inter-frame residual encoding. Among them, residual encoding can mean that the encoding end can obtain inter-frame residuals based on the data information of the data points at the same position in the 2D data structure corresponding to the current frame and the historical frame, and then perform residual encoding; or, it can also be based on the data point in the 2D data structure of the current frame to obtain the residual between the nearest neighboring points in the historical frame, and perform residual encoding. Based on this, the decoding end can use the decoding method corresponding to the encoding method to decode and restore the data.
[0170] In one embodiment, the first device and the second device are each configured with an indication of the type of data point used, such as the type of data point used in the current data compression method, and identification information corresponding to each type (such as marked as 0, 1, 2, or 3). Exemplarily, if the data point types configured by the first device include: translation prediction - first type, marked as 1; planar prediction - second type, marked as 2; data information is empty - third type, marked as 0; data information is present but does not meet the prediction conditions - fourth type, marked as 3; then, exemplarily, the first device can obtain the type corresponding to each data point in the data to be encoded, such as obtaining the 2D type map shown in Figure 10, thereby obtaining the first information.
[0171] In one embodiment, the first information may specifically be a first sequence, which includes the type corresponding to each data point in the data to be encoded arranged in a certain order. For example, the arrangement order of the first sequence may be from top to bottom and from left to right. For example, the first sequence obtained according to the 2D type diagram shown in Figure 10 may be {4,4,2,2,2,2,3,1,4,4,4,2,4,3,2…}; or, the first information may also be represented by a matrix, and the first device may obtain the first matrix according to the type mark in the 2D type diagram shown in Figure 10. The embodiment of the present application does not limit the representation of the first information. It can be seen that the first information may include the position information of each data point in an explicit or implicit manner, and the representation of the first information may be determined by the encoding end and the decoding end according to the configuration, so that the decoding end can accurately recover the type of each data point in the data to be encoded based on the first information.
[0172] In addition, for different types of data points, prediction types and types with empty data information, in one embodiment, the encoding end may not send the data information corresponding to the data point, but for non-prediction type data points that have data information and do not meet the prediction conditions, the encoding end needs to encode the data information and send it to the decoding end for data recovery.
[0173] Optionally, for the second information, the first device may generate the second information based on the data information corresponding to the fourth type of data point. Alternatively, in another embodiment, in order to further enhance coding reliability and improve compression performance, the first device may also send a prediction error value of the prediction type (or the aforementioned distance error) to the second device, so that the second device can perform data recovery based on the historical frame and the error value, thereby improving the accuracy of the recovered data. The prediction error value may be the error between the true value and the predicted value of the three-dimensional coordinate in the original coordinate system, or the error between the true value and the predicted value of the data information in the target coordinate system.
[0174] In addition, in one embodiment, the first device may further perform entropy coding on the first information and the second information in combination with an existing coding algorithm, such as arithmetic coding (AC) or LZMA, to obtain target coded data.
[0175] Correspondingly, after the first device, acting as an encoding end, outputs the target encoded data, the second device, acting as a decoding end, can obtain the target encoded data and decode it to recover the data. It should be noted that the first device can be a terminal, a network device, or an encoding device or chip in a terminal or a network device. Similarly, the second device can be a terminal, a network device, or a decoding device or chip in a terminal or a network device. This application does not impose any restrictions on this.
[0176] For the second device, the method may include the following steps.
[0177] 504: The second device decodes the target encoded data to obtain data to be compressed.
[0178] Specifically, the second device can obtain the position information and type of each data point in the to-be-compressed data based on the first information in the target coded data. Then, the second device can decode and obtain data information corresponding to the position information of each data point in the to-be-compressed data based on the type of the data point and the second information, wherein the data information corresponding to the predicted type data point is obtained based on historical frame predictions, and the data information corresponding to the non-predicted type data point is obtained based on the second information.
[0179] In one embodiment, if, in step 501, the first device performs coordinate mapping and / or quantization processing when obtaining the data to be encoded, the second device may further perform coordinate mapping and / or dequantization processing on the data to be compressed corresponding to the target coordinate system to obtain restored data corresponding to the original coordinate system. For example, if the first device maps the original data in the Cartesian coordinate system to a spherical coordinate system, the second device may remap the decoded data from the spherical coordinate system to the Cartesian coordinate system to restore the original data.
[0180] The above-mentioned implementation mode of the present application designs a classification indication for data points through a data compression method based on classification filtering of a 2D data structure, indicates the type of data point to the decoding end, and can select different modes for filtering or encoding according to the characteristics of the data points. Different compression processing is used for each type of data point, which can effectively improve the coding efficiency and compression performance.
[0181] The following describes how the first device determines the type of a data point in the data to be encoded. In one embodiment, the first device may independently determine the type of each data point; or, it may sequentially determine the type of each data point.
[0182] Method 1: Independent judgment type:
[0183] This means that the first device can sequentially determine the type satisfied by each data point in the 2D data structure. If the current data point satisfies multiple types at the same time, the type corresponding to the data point can be determined in several ways (not limited to the following and extensible):
[0184] 1. Randomly select a type from multiple types that meet the conditions.
[0185] 2. If a certain prediction type is satisfied, the type with the smallest prediction error is selected as the type corresponding to the data point. For example, the prediction error of the translation prediction is smaller than the prediction error of the plane prediction.
[0186] 3. Based on the number of data points corresponding to each type that all data points meet, the type with the largest number is selected as the type corresponding to the data point.
[0187] Method 2: Sequential judgment type:
[0188] It means that the first device can determine the category that the data point satisfies for each data point included in the encoded data one by one in order of data point type priority from high to low; that is, the first device traverses each data point in the 2D data structure in turn, and determines the type that each data point satisfies in order of type priority; if a higher priority type is satisfied, the subsequent lower priority data type will no longer be judged.
[0189] For example, as shown in FIG11 , if the priority order corresponding to the data point types is: third type (data information is empty), first type (translation prediction), second type (plane prediction), and fourth type (data information is not empty and does not meet the prediction condition), then the first device determines the type corresponding to the first data point including the following steps:
[0190] Step 1: The first device determines whether the first data point satisfies the third type 3. If so, the type mark is 0 and the determination is terminated; otherwise, step 2 is executed.
[0191] Step 2: The first device determines whether the first data point meets the first type. If so, the type is marked as 1 and the determination is terminated; otherwise, step 3 is executed.
[0192] Step 3: The first device determines whether the first data point satisfies the second type. If so, the type is marked as 2; otherwise, the type is marked as 3, and the determination is terminated.
[0193] As can be seen, the compression rate and encoding performance of the above method 1 are better, but the determination of all the types that a data point meets one by one will increase the encoding delay. Optionally, the encoder can determine the type of each data point in parallel based on multiple different data blocks to reduce the delay.
[0194] It should be noted that this application does not specifically limit the type priority order. In one embodiment, the encoder and / or decoder can obtain the priority order corresponding to the data point type; or, determine the priority order corresponding to the data point type based on a preconfiguration; or, before the encoding and decoding process, the encoder can send the priority order corresponding to the data point type to the decoder.
[0195] In one embodiment, the first device and / or the second device may obtain first indication information, including an indication of the type of data point used, for indicating the type of data point used. Optionally, the method includes: the first device sends the first indication information to the second device. For example, the second device is configured with data types including the first type, the second type, the third type and the fourth type, and identification information corresponding to each type. During the encoding and compression processing, the first device determines that the current data compression type only includes the first type, the fourth type and the third type, then the first indication information may be used to indicate to the second device the type of data point used through the identification corresponding to the indication type. Alternatively, the second device sends the first indication information to the first device, or the first device or the second device obtains the first indication information through the configuration of other network elements, which is not limited in this application.
[0196] In one embodiment, for the second type of plane prediction described above, to determine whether a data point satisfies the plane prediction conditions, the encoder and decoder can determine the scanning positions s1 and s2 of the historical frame and the current frame (e.g., the coordinate information of the scanning position can be configured or the speed information of the scanning position movement can be configured), and the encoder and decoder can determine parameters such as the number of neighboring points and the positions of the neighboring points of the fitted plane (e.g., sent from the encoder to the decoder or from the decoder to the encoder). In addition, the encoder and decoder can determine that the direction (e.g., vertical angle and azimuth) in which the scanning position perceives p2 at s2 is the same as the direction (e.g., vertical angle and azimuth) in which the scanning position perceives p1 at s1, and p′2 is the projection point of s2 on plane C in that direction.
[0197] Specifically, the process of determining the plane and solving the prediction point at the encoder may include the following process:
[0198] For example, as shown in Figure 12, the scanning position in the historical frame is s1, the scanning position in the current frame is s2, the moving vector corresponding to the scanning position can be U, and the 3D coordinate points of the previous and next frames corresponding to the same position in the 2D data structure diagram are p1 and p2 respectively. p1 and p2 may be located on the same plane, and the distance from p1 to s1 is R.
[0199] Determine the plane function C: Let f(p) = ax + by + cz + d, the plane C is f(p) = 0, based on the neighboring points (p 11 , p 12 …), the plane normal vector can be calculated according to the following formula Then substitute p1 to get the value of d, where (r1_x, r1_y, r1_z) and (r2_x, r2_y, r2_z) are and The three-axis coordinate values:
[0200] Solve the predicted point p′2 (p′2_x, p′2_y, p′2_z): The distance from the sensing device position s2 to plane C is in, With normal vector The angle is α, the distance from p′1 to s2 is R, and the distance from p′2 to s2 is D. The predicted point p′2 can be obtained according to the following formula:
[0201] The preset threshold is t2. If ||p2-p′2||≤t2, the first device determines that the data point meets the plane prediction condition and is of the second type. The decoding end can recover the data point based on p′2.
[0202] Further optionally, considering that if the first device calculates the plane function for each data point, the calculation complexity and amount of calculation will be large, which will increase the encoding delay; and the noise in the calculation process may affect the data prediction effect, the first device can determine the type of each data point and the plane it is on through the prediction method of the plane reuse sliding block.
[0203] Specifically, the first device may set a sliding block of a certain size, such as a sliding block size of m*n. As shown in FIG13 , m=4, n=3, and the sliding direction is from the upper left to the lower right, then the data points corresponding to the upper left positions of the historical frame and the current frame in the first sliding block can be recorded as p1_1 and p2_1, respectively.
[0204] As shown in FIG13 , the first device can determine a 4*3 sliding block near the point p1_1, select k neighboring points to determine a plane C (generally, edge points of the sliding block can be selected, such as the three points shown in FIG12 ), and obtain a predicted value p′2_1 of the current frame on plane C. Optionally, at least three points can determine a plane, such as the current point p1_1 and k neighboring points, where k can be a positive integer greater than or equal to 2. In one possible scenario, if the current point p1_1 is located on a plane XOY, XOZ, or YOZ in a three-dimensional coordinate system, the encoding end can determine the plane based on the point p1_1 and at least one neighboring point, that is, k can be a positive integer greater than or equal to 1.
[0205] If the predicted error value d = ||p2_1-p′2_1||≤t2, it is determined that p1_1 and p2_1 are in the same plane, and the data point can be marked as type 2 in the 2D type graph.
[0206] Next, the second point p1_2 in the slider is predicted using plane C, and the prediction error d is calculated. If the error d ≤ t2, the data point is marked as type 2, and the third point p1_3 is still predicted using plane C. If the error d > t2, the data point is marked as type 2, and subsequent points are no longer predicted using the previously generated plane. Subsequently, a new plane can be determined and predicted starting from the first data point after this point.
[0207] During the decoding process at the decoding end, the type of each data point in the 2D type map can be traversed in turn. If continuous types are marked as the second type (for example, the type mark is 2), the plane C can be determined by the first data point of the second type that appears, and the subsequent data points of the second type can use this plane for prediction.
[0208] It should be noted that the encoding end and / or decoding end can agree or configure: determine the number k of neighboring points of the fitting plane, and parameters such as the position of the neighboring points. Optionally, the encoding end and / or decoding end can agree or configure: parameters such as the size of the sliding block and the sliding direction of the sliding block. Optionally, the position of the neighboring point can be bound to the parameter m or n corresponding to the sliding block size, and this application is not limited to this method. The above parameters can be obtained through simulation testing and then sent to the encoding and decoding end through static or dynamic configuration.
[0209] Optionally, the method includes: the first device sends first indication information to the second device, the first indication information including at least one of the following information: an indication of the type of data point used, the number of neighboring points corresponding to plane prediction, the absolute position and / or offset position of the neighboring points of the plane prediction, the quantization step size and quantization boundary value corresponding to quantization processing of the original data, or the sliding block size and / or sliding direction of the sliding block corresponding to block processing of the data to be encoded. Exemplarily, the first indication information may include an indication field as shown in FIG14.
[0210] The offset position of the neighboring point may include an offset value for a leftward offset and / or an offset value for a rightward offset. For example, for a data point in a data block, a plane prediction may be performed based on a first neighboring point that is offset to the right of the data point by a first offset position, and a second neighboring point that is offset to the left of the data point by a second offset position, and so on.
[0211] Based on the above sliding processing method, the first device can divide the 2D data structure diagram into several parts, and perform sliding window prediction on each part in parallel, thereby further reducing the delay of data compression encoding.
[0212] Specifically, the first device can divide the coded data into blocks according to the sliding block division rules to obtain multiple block data, each block data includes multiple data points; the first device can process multiple block data in parallel to obtain the first information and the second information corresponding to each block data, and then integrate and compress the data to obtain the target coded data, or, encode based on the block data and send it to the decoding end.
[0213] For example, as shown in Figure 15, the encoder sequentially determines the type corresponding to each data point, obtaining a 2D type map, and further obtaining the first information and the second information. Correspondingly, the decoder restores the 2D type map based on the received first information, sequentially traverses each data point on the 2D type map, and restores the data information to obtain the data to be encoded.
[0214] Furthermore, considering that for the data points of the prediction type, the accuracy of the prediction restoration performed by the decoding end based on the historical frames cannot be guaranteed, therefore, the target coding data of the present application can also be expanded. In one embodiment, the data points of the prediction type can be encoded using prediction residuals, that is, the encoding end can encode the prediction error value of the data points of the prediction type and send it to the decoding end to further enhance the reliability of decoding.
[0215] In one implementation, the target encoded data may include at least one of the following: encoded data corresponding to the prediction error value of the data information of the first type, encoded data corresponding to the prediction error value of the data information of the second type, the position information of multiple neighboring points in the historical frame, or the position offset value between the position information corresponding to the data information of the fourth type and the position of multiple neighboring points in the historical frame. Here, a neighboring point refers to the point with the closest distance found for each data point in the historical frame.
[0216] Specifically, for the first type in the prediction type, that is, the translation prediction type, according to the foregoing solution, if the threshold for translation prediction is configured as threshold t1, and if ||p2 - (p1 + U)|| ≤ t1, then the prediction error value d = p2 - (p1 + U) can be obtained, and this prediction error value is sent to the second device, so that the second device can restore the data according to (p1 + U) + d.
[0217] In addition, similarly, for the second type in the prediction type, that is, the plane prediction type, according to the foregoing solution, if the threshold for plane prediction is configured as threshold t2, and if ||p2 - p'2|| < t2, then the prediction error value d = p2 - p'2 can be obtained, and this prediction error value is sent to the second device, so that the second device can restore the data according to p'2 + d. Similar to the foregoing, this prediction error value can be the error between the true value and the predicted value of the three-dimensional coordinates in the original coordinate system, or the error between the true value and the predicted value of the data information in the target coordinate system.
[0218] Optionally, for the data information corresponding to the data points of the fourth type in the non-prediction type, direct encoding can be performed based on the data information, or residual encoding can be performed based on the historical frame corresponding to the data information, such as residual encoding based on the data information with the same position information of the data points in the current frame and the historical frame, or residual encoding based on the residual value between the data points in the current frame and the nearest neighboring points in the historical frame.
[0219] Optionally, for the data points of the fourth type, the target encoded data may include: the position information of multiple neighboring points in the historical frame, and the position offset value between the position information corresponding to the data information of the fourth type and the position of multiple neighboring points in the historical frame. Here, a neighboring point refers to the point with the closest distance corresponding to the data point in the current frame in the historical frame.
[0220] In one implementation, the first device and / or the second device may obtain second indication information for indicating that the encoding mode corresponding to the data information of the fourth type in the non-prediction type is residual encoding based on the historical frame corresponding to the data information, or direct encoding based on the data information.
[0221] For example, the first device can directly encode based on the data information: if the data information corresponding to the plurality of data points of the fourth type in the current frame is a sequence As shown in FIG. 16 , the first device may directly encode and output the sequence.
[0222] The first device can obtain the residual value based on the data information at the same position in the 2D data structure diagram corresponding to the historical frame and the current frame, and then perform residual encoding to obtain the target encoded data, as shown in FIG16 . For example, the residual values corresponding to the plurality of data points of the fourth type can be represented by a residual sequence, for example, The first device then encodes and outputs the residual sequence.
[0223] In summary, as exemplified in Figure 17, the target coded data output by the first device may include first information, i.e., a 2D type map; and second information, i.e., a data information coding value of the data to be coded. Optionally, the target coded data may also include third information, such as coordinate information for indicating a scanning position. Optionally, the second information may specifically include residual coded data of a fourth type of data point, and optionally, may also include error value coded data corresponding to a prediction type of data point. In addition, optionally, if the fourth type of data point is residually coded based on a neighboring point search in a historical frame, the target coded data may also include position information of neighboring points in the historical frame, for example, specifically including coordinate information of the neighboring points or offset information of the relative position.
[0224] In one embodiment, the first device and / or the second device may obtain third indication information indicating at least one of the following: a first threshold, a second threshold, a third threshold, a fourth threshold, or information indicating a method for determining the type of a data point in the to-be-encoded data. The method for determining the type of a data point may include the aforementioned sequential determination method or independent determination method.
[0225] Alternatively, optionally, the second indication information may include at least one of the following: a first threshold, a second threshold, a third threshold, a fourth threshold, or indication information of a method for determining a data point type in the data to be encoded.
[0226] It should be noted that in the above embodiments of the present application, the first indication information, the second indication information, and the third indication information may all be collectively referred to as compressed configuration information, and may be carried in the same configuration signaling or in multiple different configuration signalings. As shown in FIG18 , the first device and / or the second device may obtain the compressed configuration information from other network elements or devices, or the first device and the second device may exchange some indication information in the compressed configuration information.
[0227] Further optionally, in one embodiment, the encoder may also indicate to the decoder a currently calculated compression performance parameter (e.g., mean square error (MSE)) indicating the compression performance of the currently used encoding and compression algorithm. The decoder can then determine, based on the compression performance, whether the current communication requirements for compression performance or communication conditions are met. If so, the decoder can continue to use the currently used encoding and compression algorithm. If not, feedback can be provided to the encoder to adjust the encoding and compression algorithm.
[0228] For example, the coding compression algorithm preset at the codec end is a mode that does not send prediction type residual values. When the decoding end determines that the current requirements are not met based on the compression performance, it can send a prediction residual sending instruction to the coding end; thus, after the coding end receives the instruction, it can adjust the coding compression mode and send the error value corresponding to the prediction type data point or the encoded data stream corresponding to the residual value to the decoding end, thereby improving data recovery performance.
[0229] In one embodiment, before the encoder indicates the encoding compression indication information to the decoder, the encoder and decoder may be configured with an index table of compression configuration information. In other words, the contents of the aforementioned compression configuration information may be configured in a table format, so that the encoder can indicate the index value corresponding to the selected compression configuration information to the decoder. For example, this is shown in Table 1 below.
[0230] Optionally, the index table may include selected predictable data point types, such as data point types supported by the device, where m1 represents a first type and m2 represents a second type.
[0231] Optionally, the index table may further include an encoding mode for the fourth type of data points, which may be direct encoding or residual encoding. For example, c1 represents direct encoding, and c2 represents residual encoding.
[0232] Table 1
[0233] Optionally, the prediction parameters in the compression algorithm can also be configured through the index table, such as the first threshold or second threshold corresponding to the translation prediction condition, the third threshold or fourth threshold corresponding to the plane prediction condition, and parameters such as the sliding block size and sliding direction.
[0234] For example, as shown in Table 2 below. The first threshold value can be T 11 or T 12 , the third threshold can be T 21 or T 22The sliding block size can include two groups: (W1, H1) or (W2, H2). The sliding direction can include upper left to lower right, or lower right to upper left. Different combinations of the aforementioned parameters can be mapped to the index values in Table 2 below. The encoder can then indicate these index values to the decoder for use in determining prediction parameters in the selected compression algorithm.
[0235] Table 2
[0236] Through the above-mentioned implementation of the present application, the encoding end can indicate the type of data point to the decoding end, and can select different modes for filtering or encoding based on the characteristics of the data point, and use different compression processing for each type of data point, which can effectively improve the encoding efficiency and compression performance. For example, the compression performance of the existing data compression algorithm and the data compression algorithm of the present application can be compared. For example, the mean square error (MSE) corresponding to different compression algorithms can be simulated and calculated. As can be seen from the simulation diagram shown in Figure 19, the application of the data compression algorithm provided in the embodiment of the present application can effectively reduce the MSE and improve the compression performance.
[0237] The various embodiments mentioned above in this application can be combined without limitation if there is no contradiction between the solutions.
[0238] The above mainly introduces the solutions provided by this application from the perspectives of the implementation and interaction processes of the encoding and decoding ends. Accordingly, this application also provides a communication device, which can be the first device or second device in the above-mentioned method embodiments, or a component that can be used for the first device or second device; or it can be a chip or module used to implement the functions of the first device or second device in the above-mentioned embodiments. It is understood that in order to implement the above-mentioned functions, the above-mentioned first device or second device, etc., includes hardware structures and / or software modules corresponding to performing each function. Those skilled in the art should readily appreciate that, in combination with the various exemplary units and algorithmic operations described in the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is implemented in hardware or in a hardware-driven manner by computer software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this application.
[0239] It should be understood that the above description of the interaction between various network elements uses only the first device or the second device as an example. In practice, the processing performed by the first device is not limited to being performed by a single network element, and the processing performed by the second device is not limited to being performed by a single network element. For example, if the second device is a network device, the processing performed can be performed by at least one of the CU, DU, and RU.
[0240] The present application can divide the functional modules of the first device or the second device according to the above method example. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated modules can be implemented in the form of hardware or software functional modules. It is understood that the division of modules in this application is schematic and is only a logical functional division. In actual implementation, other division methods may be used.
[0241] For example, FIG20 shows a schematic diagram of the structure of a communication device 2000, where the functional modules are divided in an integrated manner. Communication device 2000 includes an interface module 2001. Interface module 2001 can implement corresponding communication functions. Interface module 2001 can also be referred to as a transceiver module, a communication interface, or a communication module.
[0242] The communication device 2000 may further include a processing module 2002. The processing module 2002 is used to perform data processing. Specifically, in the embodiment of the present application, the processing module 2002 may be mainly used for data compression encoding processing or data decoding processing.
[0243] Optionally, the communication device 2000 may further include a storage module, which may be used to store instructions and / or data. The processing module 2002 may read the instructions and / or data in the storage module so that the communication device 2000 implements the aforementioned method embodiment.
[0244] The communication device 200 can be used to execute the actions performed by the first device or the second device in the above method embodiments. Specifically, the communication device 2000 can be the first device or the second device, or a component or device that can be configured in the first device or the second device. The processing module 2002 is used to execute the processing-related operations of the first device or the second device in the above method embodiments. The interface module 2001 is used to execute the communication-related operations of the first device or the second device in the above method embodiments.
[0245] Optionally, the interface module 2001 may include a sending module and a receiving module. The sending module is used to perform the sending operation in the above method embodiment. The receiving module is used to perform the receiving operation in the above method embodiment.
[0246] It should be noted that the communication device 2000 may include a sending module but not a receiving module. Alternatively, the communication device 2000 may include a receiving module but not a sending module. The specific implementation depends on whether the above solution executed by the communication device 2000 includes a sending action and a receiving action.
[0247] In some embodiments, the communication device 2000 may further include a storage module (not shown in FIG. 20 ) for storing program instructions and data.
[0248] For example, the communication device 2000 can be used to implement the functions of the first device in the aforementioned embodiment. The communication device 2000 is, for example, the first device in the embodiment shown in FIG5 .
[0249] The interface module 2001 is used to obtain the data to be compressed, and the data to be compressed includes the position information corresponding to the data point and the data information corresponding to the data point.
[0250] The processing module 2002 is used to perform data compression based on the data to be compressed to obtain target coded data, where the target coded data includes first information and second information. The first information indicates the type corresponding to the data information in the data to be compressed, where the type corresponding to the data information includes a non-prediction type and at least one prediction type; the second information includes data information corresponding to the non-prediction type in the data to be compressed.
[0251] The interface module 2001 is also used to output target coded data.
[0252] In one embodiment, the prediction type corresponding to the data information includes at least one of the following: a first type or a second type, wherein the first type refers to the data point type in the data to be compressed that meets the time series shift prediction condition, and the second type refers to the data point type in the data to be compressed that meets the plane prediction condition.
[0253] In one embodiment, the non-prediction type corresponding to the data information includes at least one of the following: a third type or a fourth type, wherein the third type refers to a data point type without data information; and the fourth type refers to a data point type with data information that does not meet the conditions corresponding to the prediction type.
[0254] In one embodiment, the prediction type corresponding to the data information includes the fifth type, wherein the fifth type refers to a data point type in the data to be compressed that satisfies a surface prediction condition.
[0255] In one embodiment, the data to be compressed includes a first data point, the first data point includes first position information and first data information, and the first data point satisfies the time series translation prediction condition, including: obtaining a first prediction value based on the original coordinates of the reference point in the historical frame and the translation prediction vector; the distance error between the first prediction value and the original coordinates corresponding to the first data point is less than or equal to a first threshold, or the distance error between the data information corresponding to the first prediction value in the target coordinate system and the first data information corresponding to the first data point is less than or equal to a second threshold, wherein the position information of the first prediction value in the target coordinate system is the same as the first position information corresponding to the first data point.
[0256] In one embodiment, the interface module 2001 is further configured to obtain third information indicating coordinate information of a reference point corresponding to the first device, and used to calculate a translation prediction vector based on positions of the reference point in historical frames and the current frame.
[0257] In one embodiment, the data to be compressed includes a second data point, the second data point includes second position information and second data information, and the second data point satisfies a plane prediction condition, including: fitting processing based on a reference point in a historical frame and multiple neighboring points of the reference point to obtain a prediction plane; obtaining a second prediction value based on the position information corresponding to the second data point and the prediction plane; the distance error between the second prediction value and the original coordinates of the second data point is less than or equal to a third threshold, or the distance error between the data information corresponding to the second prediction value in the target coordinate system and the second data information corresponding to the second data point is less than or equal to a fourth threshold, wherein the second prediction value is on the prediction plane of the historical frame, and the position information of the second prediction value in the target coordinate system is the same as the second position information corresponding to the second data point.
[0258] In one embodiment, the interface module 2001 is also used to obtain first indication information, which includes at least one of the following information: an indication of the type of data point used, the number of neighboring points corresponding to the plane prediction, the absolute position or offset position of the neighboring points of the plane prediction, the quantization step size and quantization boundary value corresponding to the quantization processing of the original data, or whether the encoded data is to be block processed, or the block size and / or block sliding direction corresponding to the block processing.
[0259] In one embodiment, the interface module 2001 is further configured to obtain second indication information for indicating that the coding mode corresponding to the non-prediction type data information is residual coding based on a historical frame corresponding to the data information, or direct coding based on the data information.
[0260] In one embodiment, the second indication information further includes at least one of the following information: a first threshold, a second threshold, a third threshold, a fourth threshold, and indication information of a method for determining a data point type in the data to be encoded.
[0261] In one embodiment, the processing module 2002 is also used to determine whether the target coded data includes at least one of the following based on the first indication information and / or the second indication information: coded data corresponding to the prediction error value of the first type of data information, coded data corresponding to the prediction error value of the second type of data information, or, position information of multiple neighboring points in the historical frame, and / or position offset values of the position information corresponding to the fourth type of data information and multiple neighboring points in the historical frame, wherein the neighboring point refers to the point with the closest distance to the data point of the current frame in the historical frame.
[0262] In one embodiment, the processing module 2002 is further configured to perform coordinate mapping and / or quantization processing on the original data corresponding to the original coordinate system of the current frame to obtain data to be encoded corresponding to the target coordinate system.
[0263] In one embodiment, the processing module 2002 is further used to determine the category satisfied by each data point included in the data to be encoded, one by one, in descending order of data point type priority; and obtain the first information based on the category corresponding to each data point in the data to be encoded.
[0264] In one embodiment, the interface module 2001 is further configured to obtain a priority order corresponding to the data point type.
[0265] In addition, the communication device 2000 may also be used to implement the second device described in the embodiment shown in FIG. 5 .
[0266] Among them, the interface module 2001 is used to obtain target coding data, the target coding data includes first information and second information, the first information indicates the type corresponding to the data information in the data to be compressed, and the type corresponding to the data information includes a non-prediction type and at least one prediction type; the second information includes data information corresponding to the non-prediction type in the data to be compressed.
[0267] The processing module 2002 is used to decode the target coded data to obtain the data to be compressed, where the data to be compressed includes the position information corresponding to the data point and the data information corresponding to the data point.
[0268] In one embodiment, the prediction type corresponding to the data information includes at least one of the following: a first type or a second type, wherein the first type refers to the data point type in the data to be compressed that meets the time series shift prediction condition, and the second type refers to the data point type in the data to be compressed that meets the plane prediction condition.
[0269] In one embodiment, the non-prediction type corresponding to the data information includes at least one of the following: a third type or a fourth type, wherein the third type refers to a data point type without data information; and the fourth type refers to a data point type with data information that does not meet the conditions corresponding to the prediction type.
[0270] In one embodiment, the prediction type corresponding to the data information includes the fifth type, wherein the fifth type refers to a data point type in the data to be compressed that satisfies a surface prediction condition.
[0271] In one embodiment, the data to be compressed includes a first data point, the first data point includes first position information and first data information, and the first data point satisfies the time series translation prediction condition, including: obtaining a first prediction value based on the original coordinates of the reference point in the historical frame and the translation prediction vector; the distance error between the first prediction value and the original coordinates corresponding to the first data point is less than or equal to a first threshold, or the distance error between the data information corresponding to the first prediction value in the target coordinate system and the first data information corresponding to the first data point is less than or equal to a second threshold, wherein the position information of the first prediction value in the target coordinate system is the same as the first position information corresponding to the first data point.
[0272] In one embodiment, the interface module 2001 is further configured to obtain third information indicating coordinate information of a reference point corresponding to the first device, and used to calculate a translation prediction vector based on positions of the reference point in historical frames and the current frame.
[0273] In one embodiment, the data to be compressed includes a second data point, the second data point includes second position information and second data information, and the second data point satisfies a plane prediction condition, including: fitting processing based on a reference point in a historical frame and multiple neighboring points of the reference point to obtain a prediction plane; obtaining a second prediction value based on the position information corresponding to the second data point and the prediction plane; the distance error between the second prediction value and the original coordinates of the second data point is less than or equal to a third threshold, or the distance error between the data information corresponding to the second prediction value in the target coordinate system and the second data information corresponding to the second data point is less than or equal to a fourth threshold, wherein the second prediction value is on the prediction plane of the historical frame, and the position information of the second prediction value in the target coordinate system is the same as the second position information corresponding to the second data point.
[0274] In one embodiment, the interface module 2001 is also used to obtain first indication information, which includes at least one of the following information: an indication of the type of data point used, the number of neighboring points corresponding to the plane prediction, the absolute position or offset position of the neighboring points of the plane prediction, the quantization step size and quantization boundary value corresponding to the quantization processing of the original data, or whether the encoded data is to be block processed, or the block size and / or block sliding direction corresponding to the block processing.
[0275] In one embodiment, the processing module 2002 is also used to obtain the position information corresponding to each data point in the data to be compressed and the type corresponding to the data point based on the first information in the target encoded data; and decode to obtain the data information corresponding to the position information of each data point in the data to be compressed based on the type of the data point and the second information, wherein the data information corresponding to the data point of the predicted type is obtained based on the historical frame prediction, and the data information corresponding to the data point of the non-predicted type is obtained based on the second information.
[0276] In one embodiment, the interface module 2001 is further configured to obtain second indication information for indicating that the coding mode corresponding to the non-prediction type data information is residual coding based on a historical frame corresponding to the data information, or direct coding based on the data information.
[0277] In one embodiment, the second indication information further includes at least one of the following information: a first threshold, a second threshold, a third threshold, a fourth threshold, and indication information of a method for determining a data point type in the data to be encoded.
[0278] In one embodiment, the processing module 2002 is also used to determine whether the target coded data includes at least one of the following based on the first indication information and / or the second indication information: coded data corresponding to the prediction error value of the first type of data information, coded data corresponding to the prediction error value of the second type of data information, or, position information of multiple neighboring points in the historical frame, and / or position offset values of the position information corresponding to the fourth type of data information and multiple neighboring points in the historical frame, wherein the neighboring point refers to the point with the closest distance to the data point of the current frame in the historical frame.
[0279] In one embodiment, the processing module 2002 is further configured to perform coordinate mapping and / or inverse quantization processing on the data to be compressed corresponding to the target coordinate system to obtain restored data corresponding to the original coordinate system.
[0280] When the communication device 2000 is used to implement the functions of the first device or the second device in the above embodiments, for other functions that the communication device 2000 can implement, reference can be made to the relevant introduction of the embodiment shown in FIG5 , and no further details will be given.
[0281] In a simple embodiment, those skilled in the art may conceive that the communication device 2000 may adopt the form shown in Figure 4. For example, the processor 401 in Figure 4 may call the computer-executable instructions stored in the memory 403 to enable the communication device 2000 to execute the method described in the above method embodiment.
[0282] The processing module 2002 in the above embodiment can be implemented by at least one processor or processor-related circuits. The interface module 2001 can be implemented by a transceiver or transceiver-related circuits. The interface module 2001 can also be referred to as a transceiver module, a communication module, or a communication interface. Optionally, the storage module can be implemented by at least one memory.
[0283] Exemplarily, the functions / implementation processes of the interface module 2001 in FIG. 20 may be implemented through the communication interface 404 in FIG. 4 .
[0284] For other implementations, please refer to the detailed description of the aforementioned embodiments, which will not be repeated here.
[0285] It should be understood that the specific process of each module executing the above corresponding process has been described in detail in the above method embodiment, and for the sake of brevity, it will not be repeated here.
[0286] It is understandable that one or more of the above modules or units can be implemented by software, hardware or a combination of the two. When any of the above modules or units is implemented by software, the software exists in the form of computer program instructions and is stored in a memory, and a processor can be used to execute the program instructions and implement the above method flow. The processor can be built into an SoC (system on chip) or an ASIC, or it can be an independent semiconductor chip. In addition to the core used to execute software instructions to perform calculations or processing within the processor, it can further include necessary hardware accelerators, such as field programmable gate arrays (FPGAs), PLDs (programmable logic devices), or logic circuits that implement dedicated logic operations.
[0287] When the above modules or units are implemented in hardware, the hardware can be any one or any combination of a CPU, a microprocessor, a digital signal processing (DSP) chip, a microcontroller unit (MCU), an artificial intelligence processor, an ASIC, a SoC, an FPGA, a PLD, a dedicated digital circuit, a hardware accelerator or a non-integrated discrete device, which can run the necessary software or not rely on the software to execute the above method flow.
[0288] Optionally, the present application also provides a chip system, comprising: at least one processor and an interface, wherein the at least one processor is coupled to a memory via the interface, and when the at least one processor executes a computer program or instruction in the memory, the method in any of the above method embodiments is executed. In one possible implementation, the chip system also includes a memory. Optionally, the chip system can be composed of a chip, or can include a chip and other discrete devices, which is not specifically limited in this application.
[0289] Optionally, the present application also provides a computer-readable storage medium. All or part of the processes in the above-mentioned method embodiments can be completed by a computer program to instruct the relevant hardware. The program can be stored in the above-mentioned computer-readable storage medium. When the program is executed, it can include the processes of the above-mentioned method embodiments. The computer-readable storage medium can be an internal storage unit of the communication device of any of the above-mentioned embodiments, such as a hard disk or memory of the communication device. The above-mentioned computer-readable storage medium can also be an external storage device of the above-mentioned communication device, such as a plug-in hard disk, a smart memory card (smart media card, SMC), a secure digital (secure digital, SD) card, a flash card (flash card), etc. equipped on the above-mentioned communication device. Furthermore, the above-mentioned computer-readable storage medium can also include both the internal storage unit of the above-mentioned communication device and an external storage device. The above-mentioned computer-readable storage medium is used to store the above-mentioned computer program and other programs and data required by the above-mentioned communication device. The above-mentioned computer-readable storage medium can also be used to temporarily store data that has been output or is to be output.
[0290] Optionally, the present application also provides a computer program product. All or part of the processes in the above method embodiments may be completed by a computer program instructing related hardware. The program may be stored in the above computer program product, and when executed, the program may include the processes in the above method embodiments.
[0291] Optionally, the present application also provides a computer instruction. All or part of the process in the above method embodiment can be completed by the computer instruction to instruct the relevant hardware (such as a computer, processor, network device or terminal, etc.). The program can be stored in the above computer-readable storage medium or in the above computer program product.
[0292] Optionally, the present application also provides a communication system, including: the first device and the second device in the above embodiment.
[0293] Through the description of the above implementation methods, technical personnel in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0294] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules or units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0295] The units described as separate components may or may not be physically separate, and the components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place or distributed in multiple places. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0296] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
Claims
1. A data compression method, characterized in that: Applied to a first device, the method comprises: Acquire data to be compressed, wherein the data to be compressed includes position information corresponding to a data point and data information corresponding to the data point; Performing data compression according to the data to be compressed to obtain target coded data, the target coded data comprising first information and second information, the first information indicating a type corresponding to the data information in the data to be compressed, the type corresponding to the data information comprising a non-prediction type and at least one prediction type; the second information comprising data information corresponding to the non-prediction type in the data to be compressed; The target encoded data is output.
2. A data compression method, characterized in that: Applied to the second device, the method includes: Acquire target coded data, the target coded data comprising first information and second information, the first information indicating a type corresponding to data information in the to-be-compressed data, the type corresponding to the data information comprising a non-prediction type and at least one prediction type; the second information comprising data information corresponding to the non-prediction type in the to-be-compressed data; The target coded data is decoded to obtain the data to be compressed, wherein the data to be compressed includes position information corresponding to a data point and data information corresponding to the data point.
3. The method according to claim 1 or 2, characterized in that: The prediction type corresponding to the data information includes at least one of the following: a first type or a second type, wherein the first type refers to the data point type corresponding to the data point in the data to be compressed that meets the time shift prediction condition, and the second type refers to the data point type corresponding to the data point in the data to be compressed that meets the plane prediction condition.
4. The method according to any one of claims 1 to 3, characterized in that: The non-prediction type corresponding to the data information includes at least one of the following: a third type or a fourth type, wherein the third type refers to a data point type without data information; and the fourth type refers to a data point type with data information that does not meet the prediction type condition.
5. The method according to claim 3, characterized in that: The prediction type corresponding to the data information includes a fifth type, wherein the fifth type refers to a data point type in which the data points in the data to be compressed meet the surface prediction condition.
6. The method according to claim 3, characterized in that The data to be compressed includes a first data point, the first data point includes first position information and first data information, and the first data point satisfies a time series shift prediction condition, including: Obtaining a first prediction value according to the original coordinates of the reference point in the historical frame and the translation prediction vector; The distance error between the first predicted value and the original coordinates corresponding to the first data point is less than or equal to a first threshold, or, A distance error between the data information corresponding to the first predicted value in the target coordinate system and the first data information corresponding to the first data point is less than or equal to a second threshold, wherein the position information of the first predicted value in the target coordinate system is the same as the first position information corresponding to the first data point.
7. The method according to any one of claims 1 to 6, characterized in that: The method further comprises: Acquire third information, where the third information indicates coordinate information of a reference point corresponding to the first device, and is used to calculate a translation prediction vector according to positions of the reference point in historical frames and current frames.
8. The method according to claim 4, characterized in that The data to be compressed includes a second data point, the second data point includes second position information and second data information, and the second data point satisfies a plane prediction condition, including: A prediction plane is obtained by performing fitting processing on a reference point in a historical frame and a plurality of neighboring points of the reference point; Obtaining a second prediction value according to the position information corresponding to the second data point and the prediction plane; The distance error between the second predicted value and the original coordinates of the second data point is less than or equal to a third threshold, or, A distance error between the data information corresponding to the second prediction value in the target coordinate system and the second data information corresponding to the second data point is less than or equal to a fourth threshold, wherein the second prediction value is on the prediction plane of the historical frame, and the position information of the second prediction value in the target coordinate system is the same as the second position information corresponding to the second data point.
9. The method according to claim 1, characterized in that: The step of obtaining the data to be compressed includes: The original data corresponding to the original coordinate system of the current frame is subjected to coordinate mapping and / or quantization processing to obtain the data to be encoded corresponding to the target coordinate system.
10. The method according to claim 1 or 9, characterized in that: The method further comprises: For each data point included in the data to be encoded, the priority of the data point type is determined one by one in descending order. The categories that the data points satisfy; First information is obtained according to the category corresponding to each data point in the data to be encoded.
11. The method according to any one of claims 1, 9 or 10, characterized in that: The method comprises: Get the priority order corresponding to the data point type.
12. The method according to any one of claims 1 to 11, characterized in that: The method comprises: Obtain first indication information, where the first indication information includes at least one of the following information: An indication of the type of data point used, the number of neighboring points corresponding to the plane prediction, the absolute position or offset position of the neighboring points of the plane prediction, the quantization step size and quantization boundary value corresponding to the quantization processing of the original data, or whether the data to be encoded is block-processed, or the block size and / or block sliding direction corresponding to the block processing.
13. The method according to claim 2, characterized in that Decoding the target coded data to obtain the data to be compressed includes: Obtaining position information corresponding to each data point in the to-be-compressed data and a type corresponding to the data point according to the first information in the target coded data; According to the type of the data point and the second information, data information corresponding to the position information of each data point in the data to be compressed is decoded, wherein the data information corresponding to the data point of the prediction type is obtained according to the historical frame prediction, and the data information corresponding to the data point of the non-prediction type is obtained according to the second information.
14. The method according to claim 2 or 13, characterized in that The method further comprises: The data to be compressed corresponding to the target coordinate system is subjected to coordinate mapping and / or inverse quantization processing to obtain restored data corresponding to the original coordinate system.
15. The method according to any one of claims 1 to 14, characterized in that: The method further comprises: Second indication information is obtained, which is used to indicate that the encoding mode corresponding to the non-prediction type data information is residual encoding based on the historical frame corresponding to the data information, or direct encoding based on the data information.
16. The method according to claim 15, characterized in that The second indication information also includes at least one of the following information: a first threshold, a second threshold, a third threshold, a fourth threshold, and indication information of a method for determining a data point type in the data to be encoded.
17. The method according to any one of claims 1 to 16, characterized in that: The method comprises: Determine, according to the first indication information and / or the second indication information, whether the target coded data includes at least one of the following: The encoded data corresponding to the prediction error value of the first type of data information, the encoded data corresponding to the prediction error value of the second type of data information, or the position information of multiple neighboring points in the historical frame, and / or the position information corresponding to the fourth type of data information and the position offset value of multiple neighboring points in the historical frame, wherein the neighboring point refers to the point in the historical frame that is closest to the data point of the current frame.
18. A communication device, characterized in that: include: A processor, wherein the processor is coupled to a memory, wherein the memory is used to store programs or instructions, and when the programs or instructions are executed by the processor, the method according to any one of claims 1 to 17 is executed.
19. A communication device, characterized in that: The communication device comprises a processing module and an interface module, and is configured to execute the method according to any one of claims 1 to 17.
20. A computer-readable storage medium having a computer program or instruction stored thereon, characterized in that: When the computer program or instructions are executed, the method according to any one of claims 1 to 17 is performed.
21. A computer program product, comprising computer program code, characterized in that: When the computer program code is run on a computer, the method according to any one of claims 1 to 17 is executed.
22. A communication system, characterized in that: The communication system comprises a communication device for executing the method as claimed in claim 1 and a communication device for executing the method as claimed in claim 2.