Data compression selection system

By using the kd-tree search algorithm to select the data compression process, the high cost and resource consumption problems of transmitting vehicle data are solved, and efficient data compression and transmission are achieved.

CN116708587BActive Publication Date: 2026-02-27GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211267890.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-02-25
Filing Date
2022-10-17
Publication Date
2026-02-27
Estimated Expiration
2042-10-17

AI Technical Summary

Technical Problem

Existing technologies fail to effectively utilize data compression techniques to reduce costs and computational resource consumption when transmitting vehicle data, especially when bandwidth is limited.

Method used

The kd-tree search algorithm is used to select the data compression process. Based on the vehicle transmission constraints, an appropriate data compression method is selected, such as lossy or lossless compression. Data compression is implemented through the processor and memory of the computer system, including techniques such as transform coding, adaptive sampling, quantization, and differential coding.

Benefits of technology

By optimizing the data compression process, transmission costs and computing resource consumption are reduced, data transmission efficiency is improved, and the data compression needs of different types of vehicles are adapted.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116708587B_ABST
    Figure CN116708587B_ABST
Patent Text Reader

Abstract

A system comprising a computer comprising a processor and a memory. The memory comprises instructions causing the processor to be programmed to: receive metadata comprising at least one data transmission limit and a result; perform a search of a k-d tree based on the at least one data transmission limit; and select at least one data compression process from the k-d tree based on the search. The k-d tree comprises a plurality of nodes corresponding to data compression schemes.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to selective data compression techniques for transmitting vehicle data. BACKGROUND

[0002] Compressed data for efficient processing, transit, and storage is desirable in the field of data processing. Various data processing devices are capable of compressing data prior to processing or transmitting the data over a network. Compression is performed on data to reduce the size or volume of the data for processing, transmission, or storage. For example, in the case of transmitting data, available network bandwidth capacity can be a limited resource.

[0003] The cost required to transmit data significantly increases as the size or volume of data related to the transmission increases. For example, some vehicles can generate over twenty gigabytes (20 GB) of data per hour. Reducing the size or volume of data for processing and transmission through compression can potentially result in significant cost savings. Moreover, compressing data consumes a relatively low level of computational power in terms of limited resources, and various compression algorithms can be used to implement this process. SUMMARY

[0004] A system includes a computer including a processor and a memory. The memory includes instructions causing the processor to be programmed to receive metadata and results corresponding to at least one data transmission constraint, perform a search of a k-d tree based on the at least one data transmission constraint, and select at least one data compression process from the k-d tree based on the search. The k-d tree includes a plurality of nodes corresponding to data compression schemes.

[0005] In other feature aspects, the processor is further programmed to transmit the at least one data compression process to a vehicle.

[0006] In other feature aspects, the metadata and results are transmitted by a vehicle.

[0007] In other feature aspects, the processor is further programmed to perform a gradient-based search when at least one additional node has been inserted into the k-d tree.

[0008] In other feature aspects, the at least one data compression process includes at least one of a lossy data compression process or a lossless data compression process.

[0009] In other feature aspects, compressing data according to the selected data compression process includes at least one of transform coding, adaptive sampling, quantization, differential coding, or algorithmic coding.

[0010] In other feature aspects, the processor is further programmed to select a first data compression process for a first portion of the vehicle data and a second data compression process for a second portion of the vehicle data, wherein the second data compression process is different from the first data compression process.

[0011] In other feature aspects, the data transfer limit includes at least one of a central processing unit (CPU) occupancy, a memory occupancy, a latency, a loss rate, an input / output (I / O) cost, a power consumption limit, or a bandwidth limit.

[0012] In other feature aspects, the processor is further programmed to generate a metric space based on at least simulating a computational cost corresponding to the vehicle, wherein the metric space includes a plurality of data compression processes for compressing the vehicle data.

[0013] In other feature aspects, the metric space includes a Euclidean space defining a distance between at least a first node and a second node of the plurality of nodes.

[0014] A method includes receiving metadata and results corresponding to at least one data transfer limit, performing a search of a k-d tree based on the at least one data transfer limit, and selecting at least one data compression process from the k-d tree based on the search, wherein the k-d tree includes a plurality of nodes corresponding to data compression schemes.

[0015] In other feature aspects, the method further includes transmitting the at least one data compression process to the vehicle.

[0016] In other feature aspects, the metadata and results are transmitted by the vehicle.

[0017] In other feature aspects, the method further includes performing a gradient-based search when at least one additional node has been inserted into the k-d tree.

[0018] In other feature aspects, the at least one data compression process includes at least one of a lossy data compression process or a lossless data compression process.

[0019] In other feature aspects, compressing the data according to the selected data compression process includes at least one of transform coding, adaptive sampling, quantization, differential coding, or algorithmic coding.

[0020] In other feature aspects, the method further includes selecting a first data compression process for a first portion of the vehicle data and a second data compression process for a second portion of the vehicle data, wherein the second data compression process is different from the first data compression process.

[0021] In other feature aspects, the data transfer limit includes at least one of a central processing unit (CPU) occupancy, a memory occupancy, a latency, a loss rate, an input / output (I / O) cost, a power consumption limit, or a bandwidth limit.

[0022] In other feature aspects, the method further includes generating a metric space based on at least simulating a computational cost corresponding to the vehicle, wherein the metric space includes a plurality of data compression processes for compressing the vehicle data.

[0023] In other feature aspects, the metric space includes a Euclidean space defining a distance between at least a first node and a second node of the plurality of nodes.

[0024] Additional areas of application will become apparent to those of ordinary skill in the art upon reading the following specification. It should be understood, however, that the specification and examples are illustrative only and are not intended to restrict the scope of the present disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0025] The accompanying drawings, described herein, are for illustrative purposes only and are not intended to limit the scope of the present disclosure in any way. In which:

[0026] Figure 1 is a block diagram of an example system including a vehicle;

[0027] Figure 2 is a block diagram of an example server;

[0028] Figure 3 is a graph of an example k-d tree;

[0029] Figure 4 is a block diagram of an example computing device; and

[0030] Figure 5 is a flow diagram setting forth an example process for selecting a data compression process based on a data transfer limit. DETAILED DESCRIPTION

[0031] The following description is merely illustrative in nature and is not intended to limit the disclosure, application or uses in any way.

[0032] Figure 1 is a block diagram of an example vehicle system 100. The system 100 includes a vehicle 105, which can include a land vehicle (such as a car, truck, etc.), an air vehicle, and / or a water vehicle. The vehicle 105 includes a computer 110, vehicle sensors 115, actuators 120 to actuate various vehicle components 125, and a vehicle communication module 130. The communication module 130 allows the computer 110 to communicate with a server 145 via a network 135.

[0033] The computer 110 can operate the vehicle 105 in an autonomous mode, a semi-autonomous mode, or a non-autonomous (manual) mode. For purposes of the present disclosure, autonomous mode is defined as a mode in which each of the vehicle 105 propulsion, braking, and steering is controlled by the computer 110; in semi-autonomous mode the computer 110 controls one or two of the vehicle 105 propulsion, braking, and steering; and in non-autonomous mode a human operator controls each of the vehicle 105 propulsion, braking, and steering.

[0034] The computer 110 can include programming to operate one or more of the vehicle 105 braking, propulsion (e.g., control the vehicle's acceleration by controlling one or more of an internal combustion engine, an electric motor, a hybrid engine, etc.), steering, air conditioning, interior and / or exterior lighting, etc., as well as determine whether and when the computer 110 (versus a human operator) will control such operations. Additionally, the computer 110 can be programmed to determine whether and when a human operator will control such operations.

[0035] The computer 110 can include or be communicatively coupled to more than one processor, for example, included in electronic controller units (ECUs) and the like included in the vehicle 105, for detecting and / or controlling various vehicle components 125 (e.g., powertrain controllers, brake controllers, steering controllers, etc.), for example, via the vehicle 105 communications module 130, as further described below. Further, the computer 110 can communicate with a navigation system using a global positioning system (GPS) via the vehicle 105 communications module 130. As an example, the computer 110 can request and receive location data for the vehicle 105. The location data can be in a known form, such as geographic coordinates (latitude and longitude coordinates).

[0036] The computer 110 is typically arranged for communication with the vehicle 105 communications module 130, as well as the vehicle 105 internal wired and / or wireless networks (e.g., a bus and the like in the vehicle 105, such as a controller area network (CAN) and the like) and / or other wired and / or wireless mechanisms.

[0037] Via the vehicle 105 communication network, the computer 110 can transmit messages to and / or receive messages from various devices in the vehicle 105 (e.g., vehicle sensors 115, actuators 120, vehicle components 125, human-machine interfaces (HMIs), etc.). Alternatively or additionally, where the computer 110 actually comprises multiple devices, the vehicle 105 communication network can be used to communicate between devices represented as the computer 110 in this disclosure. Further, as mentioned below, various controllers and / or vehicle sensors 115 can provide data to the computer 110. The vehicle 105 communication network can include one or more gateway modules (such as protocol translators, impedance matchers, code rate converters, etc.) that provide interoperability between various networks and devices within the vehicle 105.

[0038] The vehicle sensors 115 can include various devices known to provide data to the computer 110. For example, the vehicle sensors 115 can include wheel sensors that measure tire forces. The vehicle sensors 115 can also include light detection and ranging (lidar) sensor(s) 115 disposed on the roof of the vehicle 105, behind the front windshield of the vehicle 105, around the vehicle 105, etc., that provide relative position, size, and shape of objects and / or the situation around the vehicle 105. As another example, one or more radar sensors 115 fixed to the bumper of the vehicle 105 can provide data to provide and measure the speed of objects (possibly including the second vehicle 106) relative to the position of the vehicle 105. The vehicle sensors 115 can further include camera sensor(s) 115 (e.g., front view, side view, rear view, etc.) that provide images from the inside and / or outside field of view of the vehicle 105.

[0039] The vehicle 105 actuators 120 are implemented via circuits, chips, motors, or other electronic and / or mechanical components that can actuate various vehicle subsystems in accordance with known appropriate control signals. The actuators 120 can be used to control components 125, including braking, acceleration, and steering of the vehicle 105.

[0040] In the context of this disclosure, a vehicle component 125 is one or more hardware components suitable for performing a mechanical or electromechanical function or operation, such as moving the vehicle 105, slowing or stopping the vehicle 105, steering the vehicle 105, etc. Non-limiting examples of components 125 include a propulsion component (which can include, for example, an internal combustion engine and / or an electric motor, etc.), a transmission component, a steering component (which can include, for example, one or more of a steering wheel, a steering rack, etc.), a park assist component, an adaptive cruise control component, an adaptive steering component, a power seat, an anti-lock braking system component (ABS), a traction control system component (TCS), and / or an electronic stability control system component.

[0041] Additionally, the computer 110 can be configured for communication with devices external to the vehicle 105 via a vehicle-to-vehicle communication module or interface 130, such as communication with another vehicle through vehicle-to-vehicle (V2V) or vehicle-to-infrastructure (V2X) wireless communication, communication with a remote server 145 (typically via a network 135). The module 130 can include one or more mechanisms by which the computer 110 is able to communicate, including any desired combination of wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or topology when multiple communication mechanisms are used). Exemplary communications provided via the module 130 include cellular, Bluetooth, IEE 802.11, dedicated short-range communications (DSRC), and / or wide area networks (WANs) (including the Internet), providing data communication services.

[0042] The network 135 can be one or more of various wired or wireless communication mechanisms, including wired (e.g., cable and fiber) and / or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or topology when multiple communication mechanisms are used). Exemplary communication networks include wireless communication networks (e.g., using Bluetooth, Bluetooth Low Energy (BLE), IEEE 802.11, vehicle-to-vehicle (V2V) such as dedicated short-range communications (DSRC), etc.), local area networks (LANs) and / or wide area networks (WANs) (including the Internet), providing data communication services.

[0043] Figure 2 An example server 145 is shown that includes a data compression selection module 205. As shown, the data compression selection module 205 includes a statistical analysis module 210, a metric space adjustment module 215, a metric space initialization module 220, a compression selection module 225, a k-d tree search module 230, and a compressed transmission module 235. As discussed herein, the data compression selection module 205 selects a data compression process having a highest compression ratio based on one or more data transmission limitations.

[0044] During operation, the server 145 receives vehicle data and / or vehicle metadata from the vehicle 105 via the network 135. As discussed in greater detail herein, the data compression selection module 205 selects a data compression process that can be used by the computer 110 for more efficient transmission of the vehicle data based on hardware and / or software limitations of the vehicle 105.

[0045] The compression selection module 225 can receive metadata (e.g., vehicle metadata) and / or results that initiate a process to select the most suitable scheme for compressing data. The metadata and / or results can be provided by the vehicle 105. In an example implementation, the metadata and / or results include data transmission limits corresponding to the vehicle 105. The compression selection module 225 can provide these limits to the k-d tree search module 230, causing the k-d tree search module 230 to select one or more data compression processes based on these data transmission limits. The data transmission limits can include, but are not limited to, central processing unit (CPU) occupancy, memory occupancy, latency, loss rate, input / output (I / O) cost, power consumption limits, and / or bandwidth limits. The results can include data representative of vehicle performance results, i.e., data representative of results from a vehicle implementing a particular data compression process, etc.

[0046] The data compression processes can include lossy data compression processes or lossless data compression processes. In an example implementation, based on the type of data to be compressed, the data compression can include transform coding, adaptive sampling, quantization, differential coding, and / or algorithmic coding.

[0047] The k-d tree search module 230 can include a searchable data structure that stores viable schemes for data compression, such as compressing a portion of the vehicle data using a first data compression process, such as differential coding, and compressing the remaining portion of the vehicle data using a second data compression process, such as lossless compression, i.e., ZIP, etc.

[0048] The k-d tree search module 230 can select different data compression processes based on the vehicle data to be transmitted. In some instances, as discussed above, a first data compression process can be used to compress data having a first data type and a second data compression process can be used to compress data having a second data type. The k-d tree generated from the adjusted metric space (discussed below) can account for parallel or sequential execution.

[0049] Figure 3 A k-d tree 300 generated by the k-d tree search module 230 that stores data compression processes is shown. The k-d tree 300 includes a plurality of nodes 305, and each node 305 includes a point representative of a viable data compression process. k dimensional point.

[0050] parameters kThe k-d tree 300 can represent a number of dimensions. In example implementations, the k-d tree 300 can include three (3) dimensions, including a central processing unit (CPU) occupancy 310 parameter, a memory occupancy 315 parameter, and a latency 320 parameter. It should be appreciated that the k-d tree 300 can include additional or fewer dimensions. The k-d tree 300 can be further partitioned into a plurality of half-spaces 325, 330, 335 based on non-leaf nodes.

[0051] Using techniques as discussed herein, the k-d tree search module 230 selects a data compression process to be used by the computer 110 based on the initial data transmission limits and data received from the metric space adjustment module 215. For example, the k-d tree search module 230 can initially generate a k-d tree 300 using the initial limits corresponding to the vehicle data and / or the adjusted metric space received from the metric space adjustment module 215.

[0052] During the search, the k-d tree search module 230 can start at the root node 305 and traverse the nodes 305 to identify the node 305 closest to the point represented by the initial limits. For example, given a candidate set , the k-d tree search module 230 identifies a data compression process having a minimum cost according to min x e X (φ1 * mem + φ2 * cpu + φ3 * latency + φ4 * loss + φ5 * I / O cost + φ6 * power + φ7 * bandwidth), where x is a set representing data compression processes, min represents a function that identifies a selected data compression process having a highest compression ratio, φ1 represents an upper threshold for memory occupancy, φ2 represents an upper threshold for CPU occupancy, φ3 represents an upper threshold for latency, φ4 represents an upper threshold for loss rate, φ5 represents an upper threshold for I / O cost, φ6 represents an upper threshold for power consumption, and φ7 represents an upper threshold for bandwidth limits.

[0053] The k-d tree search module 230 can implement a gradient-based search as the k-d tree is expanded (i.e., additional nodes 305 are inserted). The gradient-based search can terminate when a local minimum has been identified or a condition boundary has been reached.

[0054] The compression transmission module 235 receives the selected data compression process(es) from the k-d tree search module 230 and transmits the selected data compression process(es) to the computer 110 via the network 135. The computer 110 can implement the selected data compression process to compress the vehicle data prior to transmission.

[0055] The statistical analysis module 210 can receive vehicle metadata corresponding to the transmitted vehicle data and generate analysis data based on statistical analysis of the vehicle metadata. The vehicle metadata can include, but is not limited to, central processing unit (CPU) occupancy, memory occupancy, latency, loss rate, input / output (I / O) cost, power consumption limit, and / or bandwidth limit, which are used (e.g., consumed) prior to transmission to compress the vehicle data. The statistical analysis module 210 can apply a suitable statistical analysis process to the received vehicle metadata. For example, the statistical analysis module 210 can compare the vehicle metadata to corresponding threshold data.

[0056] The threshold data can include expected values for central processing unit (CPU) occupancy, memory occupancy, latency, loss rate, input / output (I / O) cost, power consumption limit, and / or bandwidth limit based on the vehicle 105 class. The statistical analysis module 210 can output the statistical analysis data to the metric space adjustment module 210. In some instances, the threshold data can include vehicle performance metrics.

[0057] The metric space initialization module 220 generates an initial metric space based on the received vehicle metadata from the vehicle 105. The metric space includes a non-empty set along with a metric parameter defining a distance between at least two members of the set. Within the context of the present disclosure, the metric space can include a Euclidean space defining a distance between various nodes 305 of a k-d tree. The metric space initialization module 220 can generate the initial metric space using suitable simulations and data interpretation processes. For example, the metric space initialization module 220 can simulate a computational cost corresponding to a combination of different methods and / or data compression processes using hardware and / or software parameters corresponding to the vehicle 105.

[0058] The metric space adjustment module 215 receives input from the statistical analysis module 210 and updates the metric space based on the received statistical analysis data. For example, the Euclidean distance between various nodes within the k-d tree can be updated based on a comparison of the metadata to corresponding threshold data. In some instances, the metric space adjustment module 215 can expand the metric space of the k-d tree by inserting additional nodes 305 representing additional viable data compression schemes.

[0059] Figure 4An example computing device 400, i.e., computer 110 and / or server(s) 145, is shown that can be configured to perform one or more of the processes described herein. As shown, the computing device can include a processor 405, a memory 410, a storage device 415, an I / O interface 420, and a communication interface 425. In addition, the computing device 300 can include input devices such as a touchscreen, mouse, keyboard, etc. In certain implementations, the computing device 400 can include fewer or more components than those shown in FIG. 4. Figure 4

[0060] In particular implementations, the processor(s) 405 include hardware for executing instructions, such as those that make up a computer program. As an example and not by way of limitation, to execute instructions, the processor(s) 405 can retrieve (or fetch) the instructions from an internal register, an internal cache, memory 410, or storage 415, decode and execute them, and then dispose of them. Although not shown, the processor(s) 405 can be a multi-core processor.

[0061] The computing device 400 includes memory 410 that is coupled to the processor(s) 405. The memory 410 can be used for storing data, metadata, and programs for execution by the processor(s). The memory 410 can include one or more of a volatile and non-volatile memory, such as random access memory (“RAM”), read-only memory (“ROM”), solid state drives (“SSDs”), flash memory, phase change memory (“PCM”), or other types of data storage devices. The memory 410 can be internal or distributed.

[0062] The computing device 400 includes a storage device 415 that includes a storage device for storing data or instructions. As an example and not by way of limitation, the storage device 415 can include a non-transitory storage medium as described above. The storage device 415 can include a hard disk drive (HDD), flash memory, universal serial bus (USB) drive, or a combination or other storage device.

[0063] The computing device 400 also includes one or more input or output (“I / O”) devices / interfaces 420 that are set to allow a user to provide input to the computing device 400 (such as user keystrokes), receive output from the computing device, and otherwise communicate data to and from the computing device. These I / O devices / interfaces 420 can include a mouse, a keypad or keyboard, a touchscreen, a camera, an optical scanner, a network interface, a modem, other well-known I / O devices, or a combination or sub-combination of such I / O devices / interfaces 420. The touchscreen can be activated with a writing device or a finger.

[0064] ​I / O devices / interfaces 420 can include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers. In certain embodiments, devices / interfaces 420 are configured to provide graphical data to a display for presentation to a user. The graphical data can be representative of one or more graphical user interfaces and / or any other graphical content as can serve a particular implementation.

[0065] Computing device 400 can further include a communication interface 425. Communication interface 425 can include hardware, software, or both. Communication interface 425 can provide one or more interfaces for communication (such as, for example, packet-based communication) between computing device and one or more other computing devices 400 or one or more networks. As an example and not by way of limitation, communication interface 425 can include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI. Computing device 400 can further include a bus 430. Bus 430 can include hardware, software, or both implementing a bus standard including, but not limited to, Industry Standard Architecture (ISA), Peripheral Component Interconnect (PCI), PCI Express (PCIe), Advanced Microcontroller Bus Architecture (AMBA), etc.

[0066] Figure 5 An example process 500 for selecting a data compression process based on data transmission limitations is shown. Blocks of process 500 can be performed by server 145. At block 505, it is determined whether metadata and / or results have been received. If metadata and / or results have not been received, process 500 returns to block 505. Otherwise, at block 510, compression selection module 225 provides metadata and / or results to k-d tree search module 230.

[0067] At block 515, k-d tree search module 230 selects at least one data compression process based on limitations within the metadata and / or results. In some embodiments, k-d tree search module 230 selects a plurality of data compression processes based on a data type of the data to be transmitted (i.e., integer, character, image, audio).

[0068] At block 520, k-d tree search module 230 provides the selected data compression process(s) to compression transmission module 235. At block 525, compression transmission module 235 transmits the data compression process(s) to computing device 110 via network 135. Process 500 then ends.

[0069] The description of the present disclosure is merely exemplary in nature and variations that do not depart from the spirit and scope of the present disclosure are intended to be within the scope of the present disclosure. Such variations are not to be regarded as a departure from the spirit and scope of the present disclosure.

[0070] Generally, the computing systems and / or devices described can employ any one of a number of computer operating systems, including, but not limited to, versions and / or varieties of the Microsoft Windows® operating systems, the Unix operating system (e.g., the Solaris® operating system distributed by Oracle Corporation in Redwood Shores, California), the AIX UNIX

[0071] Computers and computing devices typically include computer-executable instructions, where the instructions can be executed by one or more computing devices, such as those listed above. Computer-executable instructions can be compiled or interpreted from computer programs created using a variety of programming languages and / or technologies, including, without limitation, and either alone or in combination, Java TM , C, C++, Matlab, Simulink, Stateflow, Visual Basic, Java Script, Perl, HTML, etc. Some of these applications can be compiled and executed on virtual machines, such as the Java Virtual Machine, Dalvik Virtual Machine, etc. Typically, a processor (e.g., a microprocessor) receives instructions, from a memory, computer-readable medium, etc., and executes these instructions, causing a computing device to perform one or more processes, including one or more of the processes described herein. Such instructions and other data can be stored and transmitted using a variety of computer-readable media. A file in a computing device is generally a collection of data stored on a computer-readable medium, such as a storage medium, random access memory, etc.

[0072] The memory can include computer-readable media (also referred to as processor-readable media) including any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that can be read by a computer (e.g., by a processor of a computer). Such media can take many forms, including but not limited to non-volatile media and volatile media. Non-volatile media can include, for example, optical or magnetic disks and other persistent memory. Volatile media can include, for example, dynamic random access memory (DRAM), which typically constitutes a main memory. Such instructions can be transmitted by one or more transmission media including coaxial cables; copper wire and fiber optics, including the wires that comprise a system bus coupled to a processor of a computing device. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH- EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.

[0073] The databases, data repositories or other data stores described herein can include various kinds of mechanisms for storing, accessing, and retrieving various kinds of data, including a hierarchical database, a set of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), etc. Each such data store is generally included within a computing device employing a computer operating system such as one of those mentioned above, and is accessed via a network in any one or more of a variety of manners as will occur to those of skill in the art. A file system can be accessed from the computer operating system, and can include files stored in various formats. In addition to the language for creating, storing, editing, and executing stored programs, an RDBMS typically employs a structured query language (SQL), such as the PL / SQL language mentioned above.

[0074] In some examples, system elements can be implemented as computer-readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.), which can be stored on associated computer-readable media (e.g., disks, memories, etc.). A computer program product can include such instructions stored on a computer-readable medium for performing the functions described herein.

[0075] In this application, including the definitions below, the term "module" or the term "controller" can be replaced with the term "circuit." The term "module" can refer to, be part of, or include: an Application Specific Integrated Circuit (ASIC); a digital, analog, or mixed analog / digital discrete circuit; a digital, analog, or mixed analog / digital integrated circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor circuit (shared, dedicated, or group) that executes code; a memory circuit (shared, dedicated, or group) that stores code for execution by the processor circuit; other suitable hardware components that provide the described functionality; or a combination of some or all of the above, such as a system-on-chip.

[0076] A module can include one or more interface circuits. In some examples, the interface can include a wired or wireless interface that connects to a local area network (LAN), the Internet, a wide area network (WAN), or combinations thereof. The functionality of any given module of the present disclosure can be distributed among multiple modules that are connected via interface circuitry. For example, a plurality of modules can allow load balancing. In a further example, a server (also known as a remote, or cloud) module can implement some functionality on behalf of a client module.

[0077] With respect to the media, processes, systems, methods, inferences, etc. described herein, it should be understood that, although the steps of such processes have been described as occurring according to some ordered sequence, such processes can be practiced with the steps performed in an order other than that described herein. It further should be understood that certain steps can be performed simultaneously, can be added or removed from the processes described herein, or certain steps can be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claims in any way.

[0078] Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent to those of skill in the art upon reading the above description. The scope of the invention should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the technologies discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the present application is capable of modification and variation and is limited only by the following claims.

[0079] All terms used in the claims are intended to have their plain and ordinary meaning as understood by those of ordinary skill in the art unless an explicitly opposite meaning is clearly set forth herein. In particular, the use of a singular article, such as "a", "an", "the", and, unless explicitly stated to the contrary, is to be taken to mean that a choice of one or more of the indicated elements is intended.

Claims

1. A system for a vehicle, the system comprising: a vehicle; a remote network; a computer located within the vehicle, the computer comprising a processor and a memory; and a server in communication with the vehicle via the remote network; the server programmed to: receive metadata and results corresponding to at least one data transmission limit of the vehicle from the vehicle; perform a search of a k-d tree based on the at least one data transmission limit; select at least one data compression process from the k-d tree based on the search, wherein the k-d tree comprises a plurality of nodes corresponding to data compression schemes; and transmit the at least one data compression process to the vehicle, the computer programmed to compress vehicle data using the at least one data compression process.

2. The system of claim 1, wherein the processor is further programmed to select the at least one data compression process based on a type of data to be transmitted.

3. The system of claim 2, wherein the metadata and the results are transmitted by the vehicle.

4. The system of claim 1, wherein the processor is further programmed to perform a gradient-based search when at least one additional node has been inserted into the k-d tree.

5. The system of claim 1, wherein the at least one data compression process comprises at least a lossy data compression process or a lossless data compression process.

6. The system of claim 1, wherein compressing data according to the selected data compression process comprises at least one of transform coding, adaptive sampling, quantization, differential coding, or algorithmic coding.

7. The system of claim 1, wherein the processor is further programmed to select a first data compression process for a first portion of vehicle data and a second data compression process for a second portion of vehicle data, wherein the second data compression process is different than the first data compression process.

8. The system of claim 1, wherein the data transmission limit comprises at least one of a central processing unit (CPU) occupancy, a memory occupancy, a latency, a loss rate, an input / output (I / O) cost, a power consumption limit, or a bandwidth limit.

9. The system of claim 1, wherein the processor is further programmed to generate a metric space based on at least simulating a computational cost corresponding to the vehicle, wherein the metric space comprises a plurality of data compression processes for compressing vehicle data.

10. The system of claim 9, wherein the metric space comprises a Euclidean space defining a distance between at least a first node and a second node of the plurality of nodes.

11. A method for a vehicle, the method comprising: receiving metadata and results corresponding to at least one data transmission limit of the vehicle from the vehicle; performing a search of a k-d tree based on the at least one data transmission limit; selecting at least one data compression process from the k-d tree based on the search, wherein the k-d tree comprises a plurality of nodes corresponding to data compression schemes; transmitting the at least one data compression process to the vehicle; and compressing vehicle data using the at least one data compression process.

12. The method of claim 11, further comprising selecting the at least one data compression process based on a type of data to be transmitted.

13. The method of claim 12, wherein the metadata and the result are transmitted by the vehicle.

14. The method of claim 13, further comprising performing a gradient-based search when at least one additional node has been inserted into the k-d tree.

15. The method of claim 11, wherein the at least one data compression process comprises at least one of a lossy data compression process or a lossless data compression process.

16. The method of claim 11, wherein compressing data according to the selected data compression process comprises at least one of transform coding, adaptive sampling, quantization, differential coding, or algorithmic coding.

17. The method of claim 11, further comprising selecting a first data compression process for a first portion of vehicle data and selecting a second data compression process for a second portion of vehicle data, wherein the second data compression process is different than the first data compression process.

18. The method of claim 11, wherein the data transmission limit comprises at least one of a central processing unit (CPU) occupancy, a memory occupancy, a latency, a loss rate, an input / output (I / O) cost, a power consumption limit, or a bandwidth limit.

19. The method of claim 11, further comprising generating a metric space based on at least simulating a computational cost corresponding to a vehicle, wherein the metric space comprises a plurality of data compression processes for compressing vehicle data.

20. The method of claim 19, wherein the metric space comprises a Euclidean space defining a distance between at least a first node and a second node of the plurality of nodes.

Citation Information

Patent Citations

  • Transmission method and electronic equipment

    CN103248883A

  • Vehicle camera module and control method thereof

    CN112104801A