Package it.unimi.dsi.compression
Class TreeDecoder
java.lang.Object
it.unimi.dsi.compression.TreeDecoder
- All Implemented Interfaces:
Decoder,Serializable
A decoder that follows 0/1 labelled paths in a tree.
Additional, the buildCodes() method returns a vector
of codewords corresponding to the paths of an instance of this class. Conversely,
the codeword-based constructor builds
a tree out of the codewords generated by root-to-leaf paths.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA leaf node of the decoding tree.static classA internal node of the decoding tree. -
Constructor Summary
ConstructorsConstructorDescriptionTreeDecoder(BitVector[] lexSortedCodeWord, int[] symbol) Creates a new codeword-based decoder starting from a set of complete, lexicographically ordered codewords.TreeDecoder(TreeDecoder.Node root, int n) Creates a new codeword-based decoder using the given tree. -
Method Summary
Modifier and TypeMethodDescriptionGenerate the codewords corresponding to this tree decoder.intdecode(BooleanIterator iterator) Decodes the next symbol from the given boolean iterator.intdecode(InputBitStream ibs) Decodes the next symbol from the given input bit stream.
-
Constructor Details
-
TreeDecoder
Creates a new codeword-based decoder using the given tree. It is responsibility of the caller that the tree is well-formed, that is, that all internal nodes are instances ofTreeDecoder.Nodeand all leaf nodes are instances ofTreeDecoder.LeafNode.- Parameters:
root- the root of a decoding tree.n- the number of leaves (symbols).
-
TreeDecoder
Creates a new codeword-based decoder starting from a set of complete, lexicographically ordered codewords. It is responsibility of the caller that the tree is well-formed, that is, that the provided codewords are exactly the root-to-leaf paths of such a tree.- Parameters:
lexSortedCodeWord- a vector of lexically sorted codeWords.symbol- a mapping from codewords to symbols.
-
-
Method Details
-
decode
Description copied from interface:DecoderDecodes the next symbol from the given boolean iterator.Note that
InputBitStreamimplementsBooleanIterator. -
decode
Description copied from interface:DecoderDecodes the next symbol from the given input bit stream.Note that
InputBitStreamimplementsBooleanIterator.- Specified by:
decodein interfaceDecoder- Parameters:
ibs- an input bit stream.- Returns:
- the next symbol decoded from
ibs. - Throws:
IOException
-
buildCodes
Generate the codewords corresponding to this tree decoder.- Returns:
- a vector of codewords for this decoder.
-
succinctRepresentation
-