IP Library › Granted Patent US 10,069,511
Granted Patent B2
US 10,069,511 · App. 15/376,170 · Granted Sep 4, 2018

Lossless data compression

Inventors: Aishwarya Dubey (Plano, TX); Hetul Sanghvi (Richardson, TX)
Assignee: TEXAS INSTRUMENTS INCORPORATED
H03M7/3059G06F3/065G06F3/0608G06F3/0619G06F3/0641G06F2212/401
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,069,511
App. No.
15/376,170
Granted
Sep 4, 2018
Kind
B2
Abstract

A method of data compression includes obtaining binary sensor data having rows with multi-bit data samples. The rows are divided into data groups each including two or more samples. A precedent value is selected for the rows or respective precedent values are selected for each data group. A compressed row of compressed sensor data is generated from each row by calculating differences between the data sample and the precedent value for its associated data groups. A Compression Information Packet (CIP) is generated for each row including information for returning the binary sensor data that includes a compressed predicate indicating whether each data group is stored compressed, a data group size being a multi-bit value that stores a group size used for row compression, and a compressed word size that stores a dynamic range of the row compression. The compressed rows are stored as stored compressed data along with the CIPs.

Claims (31)

1. A method of lossless data compression, comprising:

obtaining binary sensor data comprising a plurality of rows with each said row including a plurality of multi-bit data samples;

dividing each said row into a plurality of data groups each including two or more of said multi-bit data samples;

selecting a precedent value for each said row or respective ones of said precedent values for each of said plurality of data groups;

generating a compressed row of compressed sensor data from each said row by calculating differences between each said data sample and said precedent value for its associated one of said data groups;

generating a Compression Information Packet (CIP) for each said row having information for losslessly returning said binary sensor data including a compressed predicate comprising a data structure which indicates whether each of said data groups is stored compressed, a data group size being a multi-bit value that stores a group size used for row compression, and a compressed word size being a multi-bit value that stores a dynamic range of said row compression, and

storing said compressed rows as stored compressed data along with said CIPs.

2. The method of claim 1 , wherein said method comprises parallel single clock cycle processing of all of said plurality of data groups.

3. The method of claim 1 , further comprising using a voting circuit that dynamically selects said compressed word size.

4. The method of claim 1 , further comprising dynamically selecting compression parameters controlled by configuration, the compression parameters including a drift being a difference between a current data value and said precedent value within said data group, said compressed word size, said precedent values, and said data group size.

5. The method of claim 1 , further comprising decompressing said stored compressed data to recover said binary sensor data including accessing a random location in a fixed time.

6. The method of claim 5 , wherein said decompressing comprises a single cycle for said recovery of said binary sensor data.

7. The method of claim 1 , further comprising using parallel map-reduce functions and a single cycle address pointer calculation for said decompressing.

8. The method of claim 1 , wherein said CIP includes at least one error correction code (ECC) or a cyclic redundancy check (CRC) field.

9. A system for providing lossless data compression, comprising:

a sensor interface for receiving binary sensor data comprising a plurality of rows with each said row including a plurality of multi-bit data samples;

a data processing subsystem including an encoder having an input coupled to an output of said sensor interface, said data processing subsystem including hardware and software for:

dividing each said row into a plurality of data groups each including two or more of said multi-bit data samples;

selecting a precedent value for each said row or respective ones of said precedent values for each of said plurality of data groups;

generating a compressed row of compressed sensor data from each said row by calculating differences between each said data sample and said precedent value for its associated said data groups, and

generating a Compression Information Packet (CIP) for each said row having information for losslessly returning said binary sensor data including a compressed predicate comprising a data structure which indicates whether each of said data groups is stored compressed, a data group size being a multi-bit value that stores a group size used for row compression, and a compressed word size being a multi-bit value that stores a dynamic range of said row compression.

10. The system of claim 9 , wherein said data processing subsystem further provides storing said compressed rows as stored compressed data along with said CIPs.

11. The system of claim 9 , wherein said data processing subsystem includes circuitry for parallel processing of said plurality of data groups.

12. The system of claim 9 , wherein said encoder comprises a substrate having a semiconductor surface.

13. The system of claim 9 , further comprising a single clock cycle compression circuit for implementing said lossless data compression.

14. The system of claim 10 , further comprising a voting circuit for dynamical selecting said compressed word size.

15. The system of claim 10 , further comprising a dynamic selecting compression parameter block for dynamically selection compression parameters including a drift being a value of a difference between a current data value and said precedent value within said data group, said compressed word size, said precedent values, and said data group size.

16. The system of claim 10 , further comprising a decoder for decompressing said stored compressed data to recover said binary sensor data.

17. The system of claim 16 , wherein said decoder comprises a decompression circuit which operates in a single cycle for said recovery of said binary sensor data.

18. The system of claim 16 , further comprising using parallel map-reduce functions and a single cycle address pointers calculator for identifying a location of said precedent values for said decompressing.

19. The system of claim 10 , wherein said CIP includes at least one error correction code (ECC) or a cyclic redundancy check (CRC) field.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2016
From: DUBEY, AISHWARYA; SANGHVI, HETUL
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 040714/0411 →
Continuity (1)
Related Publication 20180167083A1 · Jun 14, 2018
Cited By (1)
US 12,373,989