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
Modifier and TypeClassDescriptionstatic class
A leaf node of the decoding tree.static class
A internal node of the decoding tree. -
Constructor Summary
ConstructorDescriptionTreeDecoder
(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.int
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
-
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.Node
and 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: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
-
buildCodes
Generate the codewords corresponding to this tree decoder.- Returns:
- a vector of codewords for this decoder.
-
succinctRepresentation
-