Compression of floating-point data by identifying a previous loss of precision
View Patent ↗Each binary floating-point value in a set of binary floating-point values is converted to a decimal floating-point value. Data are determined including an exponent, a mantissa and a quantity of decimal digits of the mantissa for each decimal floating-point value. The exponents, the mantissas and the quantity of decimal digits are individually compressed to produce compressed floating-point values based on the individual compressions.
1. A computer-implemented method of compressing floating-point data comprising:
converting each binary floating-point value in a set of binary floating-point values to a decimal floating-point value;
determining data for each decimal floating-point value including an exponent, a mantissa, and a quantity of decimal digits of the mantissa; and
individually compressing the exponents, the mantissas and the quantity of decimal digits of the decimal floating-point values and producing compressed floating-point values based on the individual compressions.
2. The computer-implemented method of claim 1 , wherein the converting includes generating a mantissa with a minimum number of digits.
3. The computer-implemented method of claim 2 , wherein the determining data includes determining whether one or more of the exponent and the quantity of decimal digits are constant for the decimal floating-point values.
4. The computer-implemented method of claim 1 , wherein the individually compressing includes:
analyzing the determined data to identify reduced precision within the decimal floating-point values and producing the compressed floating-point values based on the reduced precision.
5. The computer-implemented method of claim 1 , wherein the converting includes at least one from the group of:
normalizing a position of a decimal point; and
normalizing a length of a mantissa.
6. The computer-implemented method of claim 1 , wherein the individually compressing includes:
compressing the exponents, the mantissas and the quantity of decimal digits of the decimal floating-point values using a plurality of compression formats.
7. The computer-implemented method of claim 6 , wherein the individually compressing includes:
selecting a compressed exponent, a compressed mantissa and a compressed quantity of decimal digits with a shortest bit length from results of the compressing using the plurality of compression formats.
8. The computer-implemented method of claim 1 , wherein each converted binary floating-point value comprises a corresponding set of the exponent, the mantissa and the quantity of decimal digits to form a data triplet for the individually compressing the exponents, the mantissas and the quantity of decimal digits, the computer-implemented method further comprising:
processing each data triplet among plural parallel processing paths, wherein each processing path includes one or more from the group of:
compressing the values in each data triplet;
normalizing the exponent in each data triplet and compressing the values in each data triplet;
normalizing the mantissa length in each data triplet and compressing the values in each data triplet; and
normalizing the exponent and the mantissa length in each data triplet and compressing the values in each data triplet; and
selecting a compressed data triplet comprising a shortest bit length from among the compressed data triplets processed among the plural parallel processing paths.