Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

A system for encoding data is provided. The system includes a number parser that breaks down a field that has many digits into a set of data strings that each has a fixed number of digits. A logarithmic converter is connected to the number parser, and converts each data string into a compressed string that has less than the fixed number of digits. A compiler connected to the number parser and the logarithmic converter receives the compressed strings from the logarithmic converter and forms a new field that has many digits.

InventorRic B. Richardson
Primary Examiner: Peguy JeanPierre
Secondary Examiner: Joseph J Lauture
Attorneys: Christopher J. Rourk, Akin Gump Strauss Hauer & Feld, LLP
Current U.S. Classification341/106; 711/220
International Classification: H03M/700

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US3717851Mar 3, 1971Feb 2, 1973CO CO CO
US3925780Dec 26, 19731975TS PLUGBOARD
US4232375Jun 12, 1978Nov 4, 1980NCR CorporationData compression system and apparatus

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US7219364Feb 22, 2001May 15, 2007International Business Machines CorporationSystem and method for selectable semantic codec pairs for very low data-rate video transmission
US7884737Mar 13, 2006Feb 8, 2011M&FC Holding, LLCModular wireless fixed network for wide-area metering data collection and meter module apparatus

Claims

1. A system for compressing data comprising:

a number parser operable to parse a field of a plurality of digits into a plurality of strings, each string having a predetermined number of digits;
a logarithmic converter coupled to the number parser, the logarithmic converter operable to convert each string into a compressed string having less than the predetermined number of digits;
a compiler coupled to the number parser and the logarithmic converter, the compiler operable to receive the plurality of compressed strings from the logarithmic converter, to form a new field having a plurality of digits, and to input the new field into the number parser; and
wherein the size of the field of the plurality of digits is selected based on processing time.

2. The system of claim 1 further comprising an iteration counter coupled to the logarithmic converter, the iteration counter operable to track the number of times a field has been processed by the logarithmic converter.

3. The system of claim 1 wherein the logarithmic converter comprises a table-based system that utilizes a table of logarithmic values, in which a string is analyzed by determining the optimal combination of logarithmic components from the table of logarithmic values.

4. The system of claim 1 wherein the logarithmic converter comprises a recursion-based system that performs a series of calculations based upon the number of digits in each string, in which a string is analyzed by determining the optimal combination of logarithmic components from a recursion analysis.

5. The system of claim 1 further comprising:

an expander coupled to the compiler system, the expander operable to receive the new field and to perform a logarithmic-based expansion on the digits of the new field;
an expanded number parser coupled to the expander, the expanded number parser operable to parse the expanded new field into a plurality of fields; and
a large number system coupled to the expanded number parser, the large number system operable to receive the plurality of fields from the expanded number parser.

6. The system of claim 5 wherein the large number system is coupled to the expander, the large number system operable to transfer each of the plurality of fields to the expander as a new field for logarithmic expansion.

7. The system of claim 6 further comprising an iteration counter coupled to the compiler, the iteration counter operable to track the number of times the field has been processed by the logarithmic converter.

8. A method for encoding data comprising:

extracting a data field having a predetermined number of digits from a data file, where the number of digits is selected based on processing time;
performing a logarithmic compression on the predetermined number of digits of the data field to form a compressed data field;
storing the compressed data field in a data storage device;
repeating the steps of extracting a data field, performing a logarithmic compression, and storing the compressed data field until all digits in the data file have been extracted; and
wherein the compressed data fields are stored in a manner that allows each compressed data field to be identified.

9. The method of claim 8 wherein performing a logarithmic compression on the predetermined number of digits comprises locating a predetermined logarithmic expression for the data field from a database of predetermined logarithmic expressions.

10. The method of claim 8 wherein performing a logarithmic compression on the predetermined number of digits comprises performing an iterative process on the data field to determine a logarithmic expression that yields the data string.

11. The method of claim 8 further comprising repeating the steps of extracting the data field, performing the logarithmic compression, and storing the compressed data field on all digits of the data file each time that the data file is fully compressed until the number of digits of the data file is less than a predetermined number of digits.

12. The method of claim 8 wherein storing the compressed data field in a data storage device comprises:

storing the compressed data field in a first area of the data storage device; and
storing tracking data for the compressed data field in a second area of the data storage device.

13. The method of claim 12 wherein the tracking data includes the number of digits of the compressed data field.

14. The method of claim 12 further comprising:

extracting a second data field having a predetermined number of digits from the second area of the data storage device;
performing a logarithmic compression on the predetermined number of digits of the second data field to form a compressed second data field;
storing the compressed second data field in a third area of the data storage device;
repeating the steps of extracting the second data field, performing the logarithmic compression, and storing the compressed second data field until all digits in the second area of the data storage device have been extracted; and
wherein the compressed second data fields are stored in a manner that allows each compressed second data field to be identified.

15. A method for transmitting data comprising:

converting alphanumeric data into a numerical equivalent;
determining a logarithmic expression for the numerical equivalent;
transmitting the logarithmic expression over a communications medium;
converting the logarithmic expression back into the numerical equivalent;
converting the numerical equivalent into the alphanumeric data; and
wherein a number of digits of the alphanumeric data is selected based on processing time.

16. The method of claim 15 wherein determining the logarithmic expression for the numerical equivalent comprises looking up the logarithmic expression in a table.

17. The method of claim 15 wherein determining the logarithmic expression for the numerical equivalent comprises:

parsing the numerical equivalent into one or more fields, each field having a predetermined number of digits; and
determining the logarithmic expression for each field.

18. The method of claim 15 wherein transmitting the logarithmic expression over a communications medium comprises broadcasting the logarithmic expression to a plurality of receivers.

19. The method of claim 17 wherein converting the logarithmic expression back into the numerical equivalent comprises converting the logarithmic expression for each field back into the numerical equivalent for each field.

20. The method of claim 15 wherein converting the logarithmic expression back into the numerical equivalent comprises raising a first number contained in the numerical expression to the power of a second number contained in the numerical expression.