# US 10,313,256 B2 · Apparatus and methods for adaptive data compression

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,256 B2
- Document ID: US10313256B2
- Status: Granted
- Kind: B2
- Application number: 14/718,938
- Filed: 2015-05-21
- Published: 2016-11-24
- Granted: 2019-06-04
- Earliest claimed: 2015-05-21
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Ren Wang; Weishuang Zhao; Alexander W. Min; Michael P. Mesnier; Richard Chuang; Tsung-Yuan C. Tai; Scott D. Hahn
- Web page: https://patentgrep.com/patent/US10313256B2

## CPC

- H04L 47/38: by adapting coding or compression rate
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/00: Machine learning
- G06N 20/20: Ensemble learning
- H04L 47/20: Traffic policing
- H04L 69/04: Protocols for data compression, e.g. ROHC
- H03M 7/30: Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H04L 43/0852: Delays
- H04L 43/0894: Packet rate
- H04L 67/306: User profiles
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

Embodiments of apparatuses and methods for adaptive data compression and associated contextual information are described. In various embodiments, an apparatus may include a context monitoring module to gather contextual information for transmission of data and a policy module to gather user preference on cost associated with transmission of data. The apparatus may further include an analysis module to determine whether to compress data prior to transmission, based at least in part on the contextual information and the user preference. Other embodiments may be described and/or claimed.

## Claims

### Claim 1

A non-transitory computer readable medium containing instructions to cause a networking apparatus, in response to execution of the instructions by a processor of the apparatus, to:
gather current contextual information for transmission of data;
gather user preference on cost associated with transmission of data; and
determine whether to compress data prior to transmission, based at least in part on the current contextual information and the user preference, wherein to determine includes to look up a first total time for transmission of compressed data and a second total time for transmission of uncompressed data from a lookup table, the lookup table previously built using a random forest regression machine learning process based on previously gathered contextual information, and
wherein the user preference comprises one of a performance-centric policy that prioritizes reduced transmission time, a cost-centric policy that prioritizes reduced data usage, or a balanced policy that weighs transmission time and data usage where at least one weight is configurable.

### Claim 2 (depends on 1)

The computer readable medium of claim 1, wherein the networking apparatus is further caused to determine a data compression algorithm to compress data prior to transmission, when a determination is made to compress data prior to transmission.

### Claim 3 (depends on 2)

The computer readable medium of claim 2, wherein the networking apparatus is further caused to:
perform the data compression algorithm on data prior to transmission.

### Claim 4 (depends on 1)

The computer readable medium of claim 1, wherein the networking apparatus is further caused to gather the contextual information of at least one of a device type of the apparatus, a network bandwidth, a network latency, or a data size of data to be transmitted.

### Claim 5 (depends on 1)

The computer readable medium of claim 1, wherein the networking apparatus is further caused to use a configurable coefficient to assign a first weight to a time saving factor and a second weight to a traffic saving factor in the policy that balances both performance and cost.

### Claim 6 (depends on 1)

The computer readable medium of claim 1, wherein the networking apparatus is further caused to construct the lookup table offline using a machine learning process based on a plurality of impact factors of the previously gathered contextual information and a plurality of training datasets.

### Claim 7 (depends on 1)

The computer readable medium of claim 1, wherein the networking apparatus is further caused to estimate a first total time for transmission of compressed data and a second total time for transmission of uncompressed data, using a plurality of impact factors of the contextual information in a random forest regression machine learning process.

### Claim 8 (depends on 1)

The computer readable medium of claim 1, wherein the data comprises a compressible file, and wherein the apparatus is further caused to make a determination of whether to compress the compressible file prior to transmission of the compressible file to a server through at least one wireless network.

### Claim 9

A method for computer networking, comprising:
receiving, by a computing device, an indication for transmitting a file to a server;
gathering, by the computing device, a plurality of current impact factors on a duration for transmitting the file to the server and a user preference for performance or cost for transmitting the file to the server; and
determining, by the computing device, whether to compress the file before transmitting the file to the server based at least in part on the plurality of current impact factors and the user preference, the determining including looking up a first total time with compression for transmitting the file and a second total time without compression for transmitting the file from a lookup table, the lookup table previously built using a random forest regression machine learning process based on at least one of a plurality of previously gathered impact factors, and
wherein the user preference comprises one of a performance-centric policy that prioritizes reduced transmission time, a cost-centric policy that prioritizes reduced data usage, or a balanced policy that weighs transmission time and data usage where at least one weight is configurable.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
selecting, by the computing device, a data compression algorithm for compressing the file; and
performing, by the computing device, the data compression algorithm on the file before transmitting the file to the server.

### Claim 11 (depends on 9)

The method of claim 9, wherein the gathering comprises gathering at least one of a device type of the computing device, a network bandwidth between the computing device and the server, a network latency between the computing device and the server, or a file size of the file.

### Claim 12 (depends on 9)

The method of claim 9, wherein the determining comprises determining whether compressing the file before transmitting the file shortens a total time for transmitting the file to the server under the performance-centric policy.

### Claim 13 (depends on 9)

The method of claim 9, wherein the determining comprises determining whether compressing the file before transmitting the file saves a monetary cost for a user of the computing device to transmit the file to the server under the cost-centric policy.

### Claim 14 (depends on 9)

The method of claim 9, wherein the determining comprises assigning a first weight to a time saving factor and a second weight to a traffic saving factor under the balanced policy.

### Claim 15 (depends on 9)

The method of claim 9, wherein the determining comprises determining whether to compress the file before transmitting the file to the server based at least in part on the user preference for reducing a total time for transmitting the file or a total monetary cost for transmitting the file.

### Claim 16 (depends on 9)

The method of claim 9, further comprising:
constructing, by the computing device, the lookup table using a machine learning process based on the plurality of previously gathered impact factors.

### Claim 17

A method for computer networking, comprising:
receiving, by a module operating on a client or a server, an indication from the client for transmitting a file to the server;
gathering, by the module, a plurality of current impact factors on a duration for transmitting the file from the client to the server and a user preference for performance or cost for transmitting the file from the client to the server;
determining, by the module, whether the client is to compress the file before transmitting the file from the client to the server based at least in part on the plurality of current impact factors and the user preference, the determining comprising looking up a first total time with compression for transmitting the file and a second total time without compression for transmitting the file from a lookup table previously constructed using a random forest regression machine learning process, the machine learning process to construct the lookup table based on a plurality of previously gathered impact factors; and
sending to the client, by the module, a result of the determination of whether the client is to compress the file before transmitting the file from the client to the server, and
wherein the user preference comprises one of a performance-centric policy that prioritizes reduced transmission time, a cost-centric policy that prioritizes reduced data usage, or a balanced policy that weighs transmission time and data usage where at least one weight is configurable.

### Claim 18 (depends on 17)

The method of claim 17, wherein the gathering comprises gathering at least one of a device type of the client, a network bandwidth between the client and the server, a network latency between the client and the server, or a file size of the file.

### Claim 19 (depends on 1)

The computer readable medium of claim 1, wherein the lookup table is built offline using a training dataset.

### Claim 20 (depends on 9)

The method of claim 9, wherein the lookup table is built offline using a training dataset.

### Claim 21 (depends on 17)

The method of claim 17, wherein the lookup table is built offline using a training dataset.
