发明名称 Compression of floating-point data
摘要 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.
申请公布号 US8959129(B2) 申请公布日期 2015.02.17
申请号 US201213534389 申请日期 2012.06.27
申请人 Altera Corporation 发明人 Wegener Albert W.
分类号 G06F7/00;G06F7/483 主分类号 G06F7/00
代理机构 Okomato & Benedicto LLP 代理人 Okomato & Benedicto LLP
主权项 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; andencoding 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; andencoding 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.
地址 San Jose CA US