Class FastLz


  • final class FastLz
    extends java.lang.Object
    Core of FastLZ compression algorithm. This class provides methods for compression and decompression of buffers and saves constants which use by FastLzFrameEncoder and FastLzFrameDecoder. This is refactored code of jfastlz library written by William Kinney.
    • Constructor Detail

      • FastLz

        private FastLz()
    • Method Detail

      • calculateOutputBufferLength

        static int calculateOutputBufferLength​(int inputLength)
        The output buffer must be at least 6% larger than the input buffer and can not be smaller than 66 bytes.
        Parameters:
        inputLength - length of input buffer
        Returns:
        Maximum output buffer length
      • compress

        static int compress​(byte[] input,
                            int inOffset,
                            int inLength,
                            byte[] output,
                            int outOffset,
                            int proposedLevel)
        Compress a block of data in the input buffer and returns the size of compressed block. The size of input buffer is specified by length. The minimum input buffer size is 32. If the input is not compressible, the return value might be larger than length (input buffer size).
      • decompress

        static int decompress​(byte[] input,
                              int inOffset,
                              int inLength,
                              byte[] output,
                              int outOffset,
                              int outLength)
        Decompress a block of compressed data and returns the size of the decompressed block. If error occurs, e.g. the compressed data is corrupted or the output buffer is not large enough, then 0 (zero) will be returned instead. Decompression is memory safe and guaranteed not to write the output buffer more than what is specified in outLength.
      • hashFunction

        private static int hashFunction​(byte[] p,
                                        int offset)
      • readU16

        private static int readU16​(byte[] data,
                                   int offset)