# US 11,442,910 B2 · Multiple order delta compression

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

- Number: US 11,442,910 B2
- Document ID: US11442910B2
- Status: Granted
- Kind: B2
- Application number: 15/718,814
- Filed: 2017-09-28
- Published: 2019-03-28
- Granted: 2022-09-13
- Earliest claimed: 2017-09-28
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Kiran C. Veernapu; Abhishek R. Appu; Prasoonkumar Surti
- Web page: https://patentgrep.com/patent/US11442910B2

## CPC

- G06F 16/215: Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
- G06F 16/1744: {using compression, e.g. sparse files}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments are generally directed to area-efficient implementations of graphics instructions. An embodiment of an apparatus includes one or more processors to process data, including generating multiple sets of data including at least a first data set and a second data set for a data application; a memory for the storage of data; and a delta compression engine, the delta compression engine being operable to perform a selected delta compression operation on the generated plurality of sets of data. The delta compression operation includes multiple orders of delta compression to be performed on the second data set based on differences with the first data set, the orders of delta compression including a first order delta and a second order delta. Each of the orders of delta compression includes one of multiple data encoding processes, the data encoding processing including a first data encoding process and a second, different data encoding process.

## Claims

### Claim 1

An apparatus comprising:
one or more processors to process data, including generating a plurality of sets of data for a first data application, the first data application having a first data profile; and
a delta compression engine, the delta compression engine being operable to perform delta compression operations on the generated plurality of sets of data;
wherein the delta compression engine includes a plurality of compression options, each of the plurality of compression options including a plurality of delta compression operations, and each of the plurality of delta compression operations including one of a plurality of types of delta compression and one of a plurality of types of data encoding to express delta values, the plurality of types of data encoding including fixed length data encoding and variable length data encoding of values, the fixed length data encoding generating outputs having a fixed number of bits for each value that is encoded and the variable length data encoding generating outputs with a variable number of bits depending on the value that is encoded;
wherein the one or more processors are to select a compression option from the plurality of compression options for data applications based on a data profile for each data application; and
wherein performing a compression operation for the first data application by the one or more processors includes at least the following:
selecting a first compression option of the plurality of compression options for the first data application based on the first data profile, the first compression option including a first plurality of delta compression operations including at least a first order delta compression operation utilizing a first type of data encoding of the plurality of types of data encoding to express delta values and a second order delta compression operation utilizing a second type of data encoding of the plurality of types of data encoding to express delta values;
generating a first data set according to the first data application and transferring the first data set to an intended destination;
generating a subsequent second data set according to the first data application;
performing the first order delta compression operation based on differences between the first data set and the second data set to generate an intermediate compressed data set, wherein the first order delta compression operation is to remove a first amount of data redundancies between the first data set and the second data set, and
performing the second order delta compression operation utilizing the intermediate compressed data set to generate a further compressed data set, the second order delta compression operation to remove data redundancies between the first data set and the second data set in addition to the data redundancies removed by the first order delta compression operation.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the first type of data encoding and the second type of data encoding of the first plurality of delta compression operations of the first compression option are different types of data encoding to express delta values.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the first order delta compression operation of the first plurality of delta compression operations provides one of fixed length data encoding or variable length data encoding for expressing delta values, and the second order delta compression operation of the first plurality of delta compression operations provides the other of fixed length data encoding or variable length data encoding for expressing delta values.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the variable length data encoding of delta values utilizes exponential-Golomb coding.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the first data profile is based at least in part on probabilities of delta compression values.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein, upon determining that the first data profile of the first data application includes probabilities of delta values that follow a Gaussian curve, the one or more processors are to select a compression option of the plurality of compression options including a delta compression operation that utilizes variable length data encoding of delta values.

### Claim 7 (depends on 6)

The apparatus of claim 6, wherein the first data application is a machine learning application.

### Claim 8 (depends on 6)

The apparatus of claim 6, wherein, upon determining that a data profile of a second data application includes probabilities of delta values that do not follow a Gaussian curve, the one or more processors are to select a compression option of the plurality of compression options including a delta compression operation that utilizes fixed length encoding of delta values.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the second data application is a deep learning application.

### Claim 10 (depends on 1)

The apparatus of claim 1, wherein performance of the plurality of orders of delta compression of the compression option further includes performing a third order delta compression operation based on the further compressed data to generate a further compressed data set, the third order delta compression operation to remove data redundancies between the first data set and the second data set in addition to the data redundancies removed by the first order delta compression operation and the second order delta compression operation.

### Claim 11 (depends on 1)

The apparatus of claim 1, wherein the plurality of types of delta compression include a min/max delta compression and a predictor-based delta compression.

### Claim 12

A non-transitory computer-readable storage medium having stored thereon data representing sequences of instructions that, when executed by a processor, cause the processor to perform operations comprising:
operating a first data application on a computing system, the first data application having a first data profile, wherein the computing system includes a delta compression engine, the delta compression engine including a plurality of compression options, each of the plurality of compression options including a plurality of delta compression operations, and each of the plurality of delta compression operations including one of a plurality of types of delta compression and one of a plurality of types of data encoding to express delta values, the plurality of types of data encoding including fixed length data encoding and variable length data encoding, the fixed length data encoding generating outputs having a fixed number of bits for each value that is encoded and the variable length data encoding generating outputs with a variable number of bits depending on the value that is encoded, wherein the computing system is to select a compression option from the plurality of compression options for data applications based on a data profile for each data application;
selecting a first compression option of a plurality of compression options for the first data application based on the first data profile, the first compression option including a first plurality of delta compression operations including at least a first order delta compression operation utilizing a first type of data encoding of the plurality of types of data encoding to express delta values and a second order delta compression operation utilizing a second type of data encoding of the plurality of types of data encoding to express delta values;
generating a first data set according to the first data application and transferring the first data set to an intended destination;
generating a subsequent second data set according to the first data application;
performing the first order delta compression operation of the first compression option based on differences between the first set of data and the second set of data to generate intermediate compressed data, wherein the first order delta compression operation is to remove a first amount of data redundancies between the first data set and the second data set; and
performing the second order delta compression operation of the first compression option based on the intermediate compressed data to generate further compressed data, the second order delta compression operation to remove data redundancies between the first data set and the second data set in addition to the data redundancies removed by the first order delta compression operation.

### Claim 13 (depends on 12)

The medium of claim 12, further comprising instructions that, when executed by the processor, cause the processor to perform operations comprising:
generating final compressed data with a final order delta compression operation of the plurality of delta compression operations of the first compression option, including performing the final order delta compression operation utilizing a compressed data set generated by a previous order delta compression operation to generate the final compressed data set, wherein the final order delta compression operation is to remove additional data redundancies between the first data set and the second data set; and
transferring the final compressed data to the intended destination.

### Claim 14 (depends on 12)

The medium of claim 12, further comprising instructions that, when executed by the processor, cause the processor to perform operations comprising:
performing a third order delta compression operation of the first compression option based on the further compressed data to generate a further compressed data set, the third order delta compression operation to remove data redundancies between the first data set and the second data set in addition to the data redundancies removed by the first order delta compression operation and the second order delta compression operation.

### Claim 15 (depends on 12)

The medium of claim 12, wherein the first type of data encoding and the second type of data encoding of the first plurality of delta compression operations of the first compression option are different types of data encoding to express delta values.

### Claim 16

A computing system comprising:
one or more processors to process data, including generating a plurality of sets of data for a first data application, the first data application having a first data profile;
a dynamic random access memory (DRAM) for storage of data;
a delta compression engine, the delta compression engine being operable to perform delta compression operations on the generated plurality of sets of data; and
a wireless transceiver and dipole antenna for transmission and reception of data, including compressed data generated by the delta compression engine;
wherein the delta compression engine includes a plurality of compression options, each of the plurality of compression options including a plurality of delta compression operations, each of the plurality of delta compression operations including one of a plurality of types of delta compression and one of a plurality of types of data encoding to express delta values, the plurality of types of data encoding including fixed length data encoding and variable length data encoding, the fixed length data encoding generating outputs having a fixed number of bits for each value that is encoded and the variable length data encoding generating outputs with a variable number of bits depending on the value that is encoded;
wherein the one or more processors are to select a compression option from the plurality of compression options for data applications based on a data profile for each data application;
wherein performing a compression operation for the first data application by the one or more processors includes at least the following:
selecting a first compression option of the plurality of compression options for the first data application based on the first data profile, the first compression option including a first plurality of delta compression operations, including at least a first order delta compression operation utilizing a first type of data encoding of the plurality of types of data encoding to express delta values and a second order delta compression operation utilizing a second type of data encoding of the plurality of types of data encoding to express delta values;
generating a first data set according to the first data application and transferring the first data set to an intended destination;
generating a subsequent second data set according to the first data application;
performing the first order delta compression operation based on differences between the first data set and the second data set to generate an intermediate compressed data set, wherein the first order delta compression operation is to remove a first amount of data redundancies between the first data set and the second data set, and
performing the second order delta compression operation utilizing the intermediate compressed data set to generate a further compressed data set, the second order delta compression operation to remove data redundancies between the first data set and the second data set in addition to the data redundancies removed by the first order delta compression operation.

### Claim 17 (depends on 16)

The computing system of claim 16, wherein the first type of data encoding and the second type of data encoding of the first plurality of delta compression operations of the first compression option includes multiple different types of data encoding to express delta values.
