CompressLZF
This class implements the LZF lossless data compression algorithm. LZF is a
Lempel-Ziv variant with byte-aligned output, and optimized for speed.
Safety/Use Notes:
- Each instance should be used by a single thread only.
- The data buffers should be smaller than 1 GB.
- For performance reasons, safety checks on expansion are omitted.
- Invalid compressed data can cause an ArrayIndexOutOfBoundsException.
The LZF compressed format knows literal runs and back-references:
- Literal run: directly copy bytes from input to output.
- Back-reference: copy previous data to output stream, with specified
offset from location and length. The length is at least 3 bytes.
The first byte of the compressed stream is the control byte. For literal
runs, the highest three bits of the control byte are not set, the the lower
bits are the literal run length, and the next bytes are data to copy directly
into the output. For back-references, the highest three bits of the control
byte are the back-reference length. If all three bits are set, then the
back-reference length is stored in the next byte. The lower bits of the
control byte combined with the next byte form the offset for the
back-reference.
| Methods |
| static void |
expand(ByteBuffer in, ByteBuffer out)
Expand a number of compressed bytes.
|
| static void |
expand(ByteBuffer in, ByteBuffer out)
Expand a number of compressed bytes.
Parameters:
in - the compressed data
out - the output area
|
| int |
compress(byte[] in, int inLen, byte[] out, int outPos)
|
| int |
compress(byte[] in, int inLen, byte[] out, int outPos)
|
| int |
compress(ByteBuffer in, int inPos, byte[] out, int outPos)
Compress a number of bytes.
|
| int |
compress(ByteBuffer in, int inPos, byte[] out, int outPos)
Compress a number of bytes.
Parameters:
in - the input data
inPos - the offset at the input buffer
out - the output area
outPos - the offset at the output array
Returns:
the end position
|
| void |
expand(byte[] in, int inPos, int inLen, byte[] out, int outPos, int outLen)
|
| void |
expand(byte[] in, int inPos, int inLen, byte[] out, int outPos, int outLen)
|
| int |
getAlgorithm()
|
| int |
getAlgorithm()
|
| void |
setOptions(String options)
|
| void |
setOptions(String options)
|
|