Revision history for Compression-Util
0.08 2024-06-03
[ADDITIONS]
- Added the `lzb_compress()` and `lzb_decompress()` functions.
- Added the `lzss_encode_symbolic()` and `lzss_decode_symbolic()` functions.
- Added the `lzss_compress_symbolic()` and `lzss_decompress_symbolic()` functions.
- Added the `$LZ_MAX_DIST` variable, which controls the maximum backreference allowed in LZ parsing.
[IMPROVEMENTS]
- Better compression ratio in `lz77_compress()`.
[CHANGES]
- Renamed `bz2_compress` and `bz2_decompress` to `bwt_compress` and `bwt_decompress`, respectively.
- Renamed `$LZSS_MIN_LEN` to `$LZ_MIN_LEN`.
- Renamed `$LZSS_MAX_LEN` to `$LZ_MAX_LEN`.
- Removed the `$LZ77_MIN_LEN` and `$LZ77_MAX_LEN` variables. Using `$LZ_MIN_LEN` and `$LZ_MAX_LEN` instead.
0.07 2024-05-12
- Use the value of `$LZ_MAX_CHAIN_LEN` in `lz77_encode_symbolic()` as well.
- Added the following package variables:
$Compression::Util::LZSS_MIN_LEN
$Compression::Util::LZSS_MAX_LEN
$Compression::Util::LZ77_MIN_LEN
$Compression::Util::LZ77_MAX_LEN
...which control the minimum and maximum lenght of a match in LZSS/lZ77 encoding.
- Added support for exporting package variables with `use Compression::Util qw($PACKAGE_VARIABLE)`.
0.06 2024-05-05
[ADDITIONS]
- Added the lzss_encode_fast() function.
- Added the lz77_compress_symbolic() and lz77_decompress_symbolic() functions.
[IMPROVEMENTS]
- Much faster algorithm in lzss_encode() for large enough strings.
- Much better compression ratios achived by lzss_encode().
- Extended lzss_compress() to accept an additional optional argument, specifying the LZSS encoding method.
[CHANGES]
- Removed the lzhd_compress() and lzhd_decompress() functions.
- Renamed the mrl_compress() and mrl_decompress() to mrl_compress_symbolic() and mrl_decompress_symbolic(), respectively.
- Simplified all functions to no longer take an optional output filehandle.
[BUG-FIXES]
- The output of delta_encode() is now always deterministic.
0.05 2024-04-13
[ADDITIONS]
- Added the mrl_compress() and mrl_decompress() functions.
- Added the read_bit_lsb(), read_bits_lsb(), int2bits(), int2bits_lsb(), bits2int() and bits2int_lsb() functions.
- Added the read_null_terminated() function.
- Added the string2symbols() and symbols2string() functions.
[IMPROVEMENTS]
- Extended `huffman_from_*` to check the context and return only the encoding dictionary in scalar context.
[CHANGES]
- Simplified `lzss_encode()` for better performance, with a minimal impact on compression ratio.
[BUG-FIXES]
- Fixed several special cases and added more tests.
0.04 2024-04-06
[ADDITIONS]
- Added the deltas() and its inverse, accumulate(), functions.
- Added the frequencies() function.
- Added the huffman_from_symbols() function.
- Added the huffman_from_code_lengths() function.
[CHANGES]
- Simplified deflate_encode() to always return a binary string (no longer writes to a file-handle).
- Improved the delta_encode() function to also use RLE when it's beneficial.
- Renamed huffman_tree_from_freq() to huffman_from_freq().
0.03 2024-03-22
[ADDITIONS]
- Added the lzhd_compress() and lzhd_decompress() functions.
- Added the obh_encode() and obh_decode() functions.
[CHANGES]
- Simplified deflate_encode() to no longer require the size of the uncompressed data.
0.02 2024-03-21
[ADDITIONS]
- Added the run_length() function.
- Added the binary_vrl_encode() and binary_vrl_decode() functions.
- Added the elias_gamma_encode() and elias_gamma_decode() functions.
- Added the adaptive_ac_encode() and adaptive_ac_decode() functions.
- Added the create_adaptive_ac_entry() and decode_adaptive_ac_entry() functions.
[CHANGES]
- Renamed mtf_encode_alphabet() to encode_alphabet().
- Renamed mtf_decode_alphabet() to decode_alphabet().
0.01 2024-03-21
- Initial release.