Compression of floating-point data

US8959129B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-8959129-B2
Application numberUS-201213534389-A
CountryUS
Kind codeB2
Filing dateJun 27, 2012
Priority dateJun 30, 2011
Publication dateFeb 17, 2015
Grant dateFeb 17, 2015

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Compression of exponents, mantissas and signs of floating-point numbers is described. Differences between exponents are encoded by exponent tokens selected from a code table. The mantissa is encoded to a mantissa token having a length based on the exponent. The signs are encoded directly or are compressed to produce fewer sign tokens. The exponent tokens, mantissa tokens and sign tokens are packed in a compressed data packet. Decompression decodes the exponent tokens using the code table. The decoded exponent difference is added to a previous reconstructed exponent to produce the reconstructed exponent. The reconstructed exponent is used to determine the length of the mantissa token. The mantissa token is decoded to form the reconstructed mantissa. The sign tokens provide the reconstructed signs or are decompressed to provide the reconstructed signs. The reconstructed sign, reconstructed exponent and reconstructed mantissa are combined to form a reconstructed floating-point number.

First claim

Opening claim text (preview).

I claim: 1. A method for compressing a plurality of floating-point numbers, wherein each floating-point number includes an original number of bits in accordance with a floating-point format used in a data processing system, the floating-point format defining a sign bit to represent a sign, a plurality of exponent bits to represent an exponent and a plurality of mantissa bits to represent a mantissa, the method comprising: setting a code table in a memory of the data processing system, wherein the code table associates a set of exponent difference values with a set of corresponding exponent tokens; compressing the exponent of each of the floating-point numbers to produce an exponent token, comprising: calculating an exponent difference between the exponent and a second exponent of a second one of the floating-point numbers; and encoding the exponent difference by selecting the exponent token corresponding to the exponent difference from the code table; compressing the mantissa of each of the floating-point numbers to produce a mantissa token, comprising: determining a number of encoded mantissa bits based on the exponent of the floating-point number; and encoding the mantissa to produce the mantissa token having the number of encoded mantissa bits; encoding the signs of the plurality of floating-point numbers to produce one or more sign tokens; and packing the exponent tokens, the mantissa tokens and the sign tokens representing a plurality of encoded floating-point numbers in a compressed data packet. 2. The method of claim 1 , wherein said encoding the signs further comprises compressing the signs of the plurality of floating-point numbers to produce the one or more sign tokens representing compressed signs. 3. The method of claim 1 , wherein said encoding the signs further comprises using a value of the sign of the as the sign token. 4. The method of claim 1 , wherein the code table includes an escape token, said encoding the exponent difference further comprising: combining the escape token with the exponent difference to form the exponent token when the exponent difference differs from the set of exponent difference values in the code table. 5. The method of claim 1 , wherein the code table associates corresponding exponent tokens with exponent difference values having higher frequencies of occurrence in accordance with a Huffman encoding. 6. The method of claim 1 , wherein the code table associates corresponding exponent tokens with exponent difference values having higher frequencies of occurrence in accordance with an entropy encoding. 7. The method of claim 1 , wherein said setting a code table in memory provides a plurality of code tables, wherein each code table is associated with a table indicator, said compressing the exponent further comprising: calculating a statistic of the exponent differences for at least a portion of the plurality of floating-point numbers; selecting the code table based on the statistic, wherein said encoding the exponent difference selects the exponent token from the selected code table; and saving the table indicator associated with the selected code table in the compressed data packet. 8. The method of claim 7 , wherein said calculating a statistic comprises calculating a histogram of the exponent differences, wherein said selecting the code table further comprises: calculating a total number of bits for the corresponding exponent tokens of each of the plurality of code tables based on the histogram of exponent differences; and selecting the code table where the total number of bits is lowest. 9. The method of claim 1 , wherein said encoding the mantissa further comprises: saving most significant bits of the mantissa to form the mantissa token having the number of encoded mantissa bits. 10. The method of claim 1 , further comprising: setting a mapping function in the memory that relates a set of exponent values to a set of numbers of encoded mantissa bits, wherein said determining a number of encoded mantissa bits uses the mapping function to determine the number of encoded mantissa bits based on the exponent of the floating-point number. 11. The method of claim 10 , wherein said setting a mapping function provides a plurality of mapping functions, each mapping function associated with a mapping function indicator, further comprising: calculating a statistic of the exponents for at least a portion of the plurality of floating-point numbers; selecting the mapping function based on the statistic, wherein said determining a number of encoded mantissa bits uses the selected mapping function; and storing the mapping function indicator in the compressed data packet. 12. The method of claim 11 , wherein said calculating a statistic comprises calculating a histogram of the exponents, said selecting the mapping function further comprising: calculating a total number of encoded mantissa bits for each of the mapping functions based on the histogram of exponents; and selecting the mapping function where the total number of encoded mantissa bits is lowest. 13. A method for reconstructing floating-point numbers from encoded floating-point numbers corresponding to original floating-point numbers, each having an original number of bits in accordance with a floating-point format used in a data processing system, the floating-point format defining a sign bit to represent a sign, a number of exponent bits to represent an exponent and a number of mantissa bits to represent a mantissa, the method comprising: setting a code table in a memory of the data processing system, wherein the code table associates a set of exponent difference values with a set of corresponding exponent tokens; receiving a compressed data packet containing a plurality of encoded floating-point numbers, represented by sign tokens, exponent tokens and mantissa tokens; decompressing the exponent token of each of the plurality of encoded floating-point numbers to form a reconstructed exponent having the number of exponent bits in accordance with the floating-point format, comprising: extracting the exponent token from the compressed data packet; decoding the exponent token by identifying the exponent difference value corresponding to the exponent token using the code table to produce a decoded exponent difference; and adding the decoded exponent difference to a previous reconstructed exponent to produce the reconstructed exponent; decompressing the mantissa token of each of the plurality of encoded floating-point numbers to form a reconstructed mantissa having the number of mantissa bits in accordance with the floating-point format, comprising: determining a number of encoded mantissa bits using the reconstructed exponent; extracting the mantissa token having the number of encoded mantissa bits from the compressed data packet; and decoding the mantissa token to form the reconstructed mantissa; extracting one or more sign tokens of the plurality of encoded floating-point numbers from the compressed data packet; decoding the sign tokens to produce reconstructed signs; and combining the reconstructed sign, the reconstructed exponent and the reconstructed mantissa of each of the plurality of encoded floating-point numbers to form a reconstructed floating-point number in accordance with the floating-point format to produce a plurality of reconstructed floating-point numbers. 14. The method of claim 13 , wherein the one or more sign tokens represent compressed signs of the plurality of the encoded floating-point numbers, said decoding the sign tokens further comprising decompressing the one or more sign to

Assignees

Inventors

Classifications

  • G06F7/483Primary

    Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers {(G06F7/4806, G06F7/4824, G06F7/49, G06F7/491, G06F7/544 take precedence)} · CPC title

  • Statistical coding, e.g. Huffman, run length coding · CPC title

  • Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US8959129B2 cover?
Compression of exponents, mantissas and signs of floating-point numbers is described. Differences between exponents are encoded by exponent tokens selected from a code table. The mantissa is encoded to a mantissa token having a length based on the exponent. The signs are encoded directly or are compressed to produce fewer sign tokens. The exponent tokens, mantissa tokens and sign tokens are pac…
Who is the assignee on this patent?
Wegener Albert W, Altera Corp
What technology area does this patent fall under?
Primary CPC classification G06F7/483. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 17 2015 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).