Package com.coyotegulch.jisp
Class Huffman
- java.lang.Object
-
- com.coyotegulch.jisp.Huffman
-
public class Huffman extends java.lang.Object
Compresses and decompresses objects using the Huffman algorithm. Huffman encoding creates a set of codes for which the shortest code represents the most common piece of data. Codes created by the Huffman algorithm require a file to be analyzed, counting bytes to determine their frequency. From the frequencies, the Huffman algorithm builds a table of codes used to compress the information. Including the table of codes with the compressed data allows the original file to be reconstructed.To be most effective, Huffman encoding uses a variable length code, where no code is a prefix of another, which makes decompression easier by allowing the extraction of the file bit-by-bit. The shortest codes are assigned to the most common characters, with infrequent characters receiving longer codes.
Objects to be compressed must be Serializable.
- See Also:
HuffmanEncoded
-
-
Constructor Summary
Constructors Constructor Description Huffman()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Object
decode(HuffmanEncoded enc)
Decodes a compressed object using the Huffman algorithm.static HuffmanEncoded
encode(java.lang.Object obj)
Encodes an object using Huffman compression.
-
-
-
Method Detail
-
encode
public static HuffmanEncoded encode(java.lang.Object obj) throws java.io.IOException
Encodes an object using Huffman compression.- Parameters:
obj
- serializable object to be compressed- Returns:
- a new
HuffmanEncoded
object containing the compressed object and its encoding table - Throws:
java.io.IOException
- when an I/O exception is thrown by an underlying java.io.* class- See Also:
HuffmanEncoded
-
decode
public static java.lang.Object decode(HuffmanEncoded enc) throws java.io.IOException, java.lang.ClassNotFoundException
Decodes a compressed object using the Huffman algorithm.- Parameters:
enc
- object to be decompressed- Returns:
- the decompressed
Object
- Throws:
java.io.IOException
- when an I/O exception is thrown by an underlying java.io.* classjava.lang.ClassNotFoundException
- when an explicit cast fails- See Also:
HuffmanEncoded
-
-