Package it.unimi.dsi.compression
Class CanonicalFast64CodeWordDecoder
java.lang.Object
it.unimi.dsi.compression.CanonicalFast64CodeWordDecoder
- All Implemented Interfaces:
Decoder
,Serializable
A fast table-based decoder for canonical Huffman codes supporting only codes with limited (less than 64 bits) codewords.
We use the technique described by Daniel S. Hirschberg and Debra A. Lelewer, “Efficient Decoding of Prefix Codes”,
Comm. ACM, 33(4): 449−459, 1990.
- See Also:
-
Constructor Summary
ConstructorDescriptionCanonicalFast64CodeWordDecoder
(int[] codeWordLength, int[] symbol) Creates a new codeword-based decoder using the given vector of codewords lengths and a symbol array. -
Method Summary
Modifier and TypeMethodDescriptionint
decode
(BooleanIterator iterator) Decodes the next symbol from the given boolean iterator.int
decode
(InputBitStream ibs) Decodes the next symbol from the given input bit stream.
-
Constructor Details
-
CanonicalFast64CodeWordDecoder
public CanonicalFast64CodeWordDecoder(int[] codeWordLength, int[] symbol) Creates a new codeword-based decoder using the given vector of codewords lengths and a symbol array.- Parameters:
codeWordLength
- a vector of nondecreasing codeword lengths suitable for a canonical code.symbol
- a parallel array of symbols corresponding to each codeword length.
-
-
Method Details
-
decode
Description copied from interface:Decoder
Decodes the next symbol from the given boolean iterator.Note that
InputBitStream
implementsBooleanIterator
. -
decode
Description copied from interface:Decoder
Decodes the next symbol from the given input bit stream.Note that
InputBitStream
implementsBooleanIterator
.- Specified by:
decode
in interfaceDecoder
- Parameters:
ibs
- an input bit stream.- Returns:
- the next symbol decoded from
ibs
. - Throws:
IOException
-