Skip to content

Releases: lsleonard/tiny-data-compression

v2.1.8: Improve bit output handling in text and string encoding

14 Feb 07:55
Compare
Choose a tag to compare
  1. In tdString.c, moved the inline functions for bit output to td64_internal.h where they can also be used by functions in td64.c.
  2. In td64.c, implemented bit output handling improvements for encodeAdaptiveTextMode and encodeStringMode.

v2.1.7: Updates to benchmarking, code cleanup, and speed improvement

13 Feb 08:29
Compare
Choose a tag to compare
  1. In main.c, changed benchmarking to have max of 2000 external loops under timer with remaining loops run inside timer.
  2. In td64.c, decodeAdaptiveTextMode, made dtbmThisVal internal to function rather than static global. Added a read-ahead byte so that peaking at bits does not require an extra read and thus runs faster. The read-ahead means main loop must stop three values early to avoid reading beyond end of input values, and those three values must be processed without read-ahead.
  3. In td64.c, decodeStringMode, made dsmThisVal internal to function rather than static global.

v2.1.6: Encode and decode speed improvements

04 Feb 20:49
Compare
Choose a tag to compare
  1. In td512.c, modified checkTextMode to return a code that causes use of extended string mode and improves compression speed. Also added ' (quote) to the text chars array.
  2. In td512.c, modified checktd64 (name change from checkSingleValueMode) to return a code for expected random data to be processed as a failing block of 64 bytes in the same way that td64 would handle this block.
  3. In td64.c, modified decodeAdaptiveTextMode to read one byte ahead to improve speed of processing dtbmPeekBits. This change can require one byte read beyond length of input array.

v2.1.5: Improved compression speed of extended string mode

03 Feb 07:04
Compare
Choose a tag to compare
  1. In tdstring.c, implemented 64-bit output of encoded values to improve compression speed.

v2.1.4: Support additional 64 non-unique values in extended string mode

01 Feb 17:25
Compare
Choose a tag to compare
  1. In tdstring.c, extended string mode, continue processing after 64 unique values encountered for up to 64 additional non-unique values that are output as if they are unique values but are not indexed for string matching. The initial 64 unique values continue to be used. This improves compression for files with larger numbers of unique values, and reduces compression for some other files. The net result is better average compression.

v2.1.3: Speed improvements

29 Jan 22:32
Compare
Choose a tag to compare
  1. In td512.c, modified checkSingleValueMode to use the output of td64 call when possible.
  2. In td64.c, changed decodeAdaptiveTextMode to use arrays of bit positions and bits taken to maximize execution speed.

v2.1.2: Vary string length in extended string mode

27 Jan 01:55
Compare
Choose a tag to compare

In tdString.c, make the definition of string length and associated
number of bits based on number of input values. For <= 64 values,
length is 9 and bits are 3. For > 64 values, length is 17 and
bits are 4. Longer strings are likely to be found in larger data sets.

v2.1.1: Extend compression up to 512 bytes

26 Jan 03:47
Compare
Choose a tag to compare
  1. In td512.c, for 128 and more values, text and extended string modes are called for checked data. For other data, and for any remaining values from calls for 128 or more values, td64 is called. A minimum of 16 characters are compressed.
  2. In tdString.c, extended string mode was modified to stop on the 65th unique value. This value is the last value output and the number of values at that point is returned.
  3. In main.c, after decompression, the input file is verified against the decompressed output file.

v1.1.8: Improvements to adaptive text mode and quicker processing of random data

13 Jan 04:52
dee457e
Compare
Choose a tag to compare
  1. Check for too many uniques to yield compression after initial loops complete and label the return random data.
  2. Added check for high bit clear in text mode and output 7-bit non-predefined values when all values have a 0 in high bit.
  3. Added definition of predefined characters for adaptive text mode for XML and C data to take advantage of fewer bits for more frequently occurring characters.

v1.1.7: Add compression of non-single values in single value mode

30 Dec 04:58
5e789e0
Compare
Choose a tag to compare
  1. In single value mode, added compression of non-single values. This option is enabled for 5 to unique limit uniques where compression rate is worthwhile.
  2. Changed STRING_LIMIT to 9 (3 bits) in extended string mode to get better compression for up to 64 values. This function can be used for 512 values when that change is made to td512, and use STRING_LIMIT of 17 (4 bits).
  3. Added some test mode values.