IP Library Granted Patent US 9,748,972
Granted Patent B2
US 9,748,972 · App. 15/264,073 · Granted Aug 29, 2017

Lossless data compression

Inventors: Mark Russell Wheeler (St. Joseph, MI); Scott Chrispell (Stevensville, MI)
Assignee: Leco Corporation
H03M7/40
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 9,748,972
App. No.
15/264,073
Granted
Aug 29, 2017
Kind
B2
Abstract

An analytical instrument includes a data acquisition system that produces data. The analytical instrument includes a data compression system/process that utilizes a lossless data compression technique that can be implemented using minimal hardware and software resources. The process may be implemented in such a way that it can be split into many parallel operations. The process can be implemented utilizing software and/or processing devices such as Field-Programmable Gate Arrays (FPGAs) or Graphics Processing Units (GPUs).

Claims (55)

1. A method of improving operation of a system including an analytical instrument that includes a data acquisition system that is configured to generate a stream of digital data comprising N numbers of size n corresponding to a magnitude of a measured variable in which at least some of the numbers include at least one zero and wherein the system includes a processing device that is operably connected to the data acquisition system, the method comprising:

providing the processing device with an original stream of digital data comprising N numbers of size n from the data acquisition system;

causing the processing device to segment at least a portion of the original stream of data to form at least one segmented array of data;

causing the processing device to transpose the at least one segmented array of data to form at least one transposed array of data;

causing the processing device to split the at least one transposed array of data to form at least one interleaved array of data to thereby save at least a byte in memory that can be utilized to store run length information;

causing the processing device to run length encode leading zeros of the numbers to form compressed data comprising run length information to reduce an amount of memory required to store the compressed data; and

storing the compressed data in memory.

2. The method of claim 1 , wherein:

causing the processing device to segment the at least a portion of the original stream of data into at least one segmented array of size n×n.

3. The method of claim 2 , further including:

causing the processing device to transform the at least one segmented array of data into at least one interleaved array of data of size (2n)×(n/2).

4. The method of claim 1 , further including:

causing the processing device to reverse the transposed array of data.

5. The method of claim 1 , further including:

transferring the compressed data to a computer having a processor that is configured to decompress the compressed data.

6. The method of claim 5 , wherein:

the processor of the computer is configured to decompress the compressed data by performing the steps of:

inverse run length encoding the compressed data to form at least one interleaved array of data;

converting the at least one interleaved array of data into at least one transposed array of data;

transposing the at least one transposed array of data to form at least one segmented array of data.

7. The method of claim 6 , wherein:

the processor of the computer is configured to assemble a plurality of segmented arrays of data to form a stream of data that is substantially identical to the original stream of digital data.

8. The method of claim 1 , further including:

utilizing a data acquisition system selected from the group consisting of glow discharge atomic emissions spectrometers, thermal gravimetric analyzers, ash fusion measuring devices, calorimeters, elemental analyzers, digital microscopes, mass spectrometers, and audio devices to provide the original stream of digital data to the processing device.

9. The method of claim 1 , wherein:

the processing device comprises at least one of a Field-Programmable Gate Array and a Graphics Processing Unit.

10. The method of claim 1 , further including:

providing a personal computer; and

transferring compressed data from the data acquisition system to the personal computer.

11. The method of claim 1 , further including:

causing the processing device to determine if a first data location is zero and to transpose the at least one segmented array of data only if the first data location is zero.

12. The method of claim 11 , further including:

causing the processing device to generate a stream of data comprising uncompressed data and compressed data that is stored in memory.

13. The method of claim 1 , wherein:

the original stream of digital data comprises N numbers comprising measured data taken at discreet time intervals, and each number comprises a magnitude of a measured variable.

14. The method of claim 1 , further including:

causing the processing device to 1) determine a difference between two data sets at a time and location; 2) preserve a sign of a difference utilizing a sign parameter; 3) determine an absolute value of the difference; 4) compressing the difference; and 5) storing the compressed difference and the sign parameter.

15. An analytical instrument comprising:

a data acquisition system that is configured to generate a stream of digital data comprising N numbers of size n corresponding to a magnitude of a measured variable in which at least some of the numbers include at least one zero, and wherein the system includes;

a processing device that is configured to receive a stream of data comprising N numbers of size n from the data acquisition system, the processing device configured to:

cause the processing device to segment at least a portion of the stream of data to form at least one segmented array of data;

cause the processing device to transpose the at least one segmented array of data to form at least one transposed array of data;

cause the processing device to split the at least one transposed array of data to form at least one interleaved array of data to thereby save at least a byte in memory that can be utilized to store run length information;

cause the processing device to run length encode leading zeros of the numbers to form compressed data comprising run length information to reduce the amount of memory required to store the data; and

store the compressed data in memory.

16. The analytical instrument of claim 15 , wherein:

the processing device is configured to reverse the transposed array of data.

17. The analytical instrument of claim 15 , wherein:

the processing device is configured to segment the at least one portion of the stream of data into at least one segmented array of size n×n.

18. The analytical instrument of claim 17 , wherein:

the processing device is configured to transform the at least one segmented array into a (2n)×(n/2) interleaved array.

19. The analytical instrument of claim 15 , wherein:

the analytical instrument includes at least one memory storage unit comprising a hard disk and/or solid state memory, and wherein the processing device is configured to store compressed data on the memory storage unit.

20. The analytical instrument of claim 15 , wherein:

the analytical instrument is selected from the group consisting of glow discharge atomic emissions spectrometers, thermal gravimetric analyzers, ash fusion measuring devices, calorimeters, elemental analyzers, digital microscopes, mass spectrometers, and audio devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2016
From: WHEELER, MARK RUSSELL; CHRISPELL, SCOTT
To: LECO CORPORATION
Reel/Frame 040959/0847 →
Continuity (2)
Provisional Application 62218279 · Sep 14, 2015
Related Publication 20170077949A1 · Mar 16, 2017