Class CanonicalFast64CodeWordDecoder

  • All Implemented Interfaces:
    Decoder, java.io.Serializable

    public final class CanonicalFast64CodeWordDecoder
    extends java.lang.Object
    implements Decoder, java.io.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:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      CanonicalFast64CodeWordDecoder​(int[] codeWordLength, int[] symbol)
      Creates a new codeword-based decoder using the given vector of codewords lengths and a symbol array.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int decode​(it.unimi.dsi.fastutil.booleans.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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • 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 Detail

      • decode

        public int decode​(it.unimi.dsi.fastutil.booleans.BooleanIterator iterator)
        Description copied from interface: Decoder
        Decodes the next symbol from the given boolean iterator.

        Note that InputBitStream implements BooleanIterator.

        Specified by:
        decode in interface Decoder
        Parameters:
        iterator - a boolean iterator.
        Returns:
        the next symbol decoded from the bits emitted by i
      • decode

        public int decode​(InputBitStream ibs)
                   throws java.io.IOException
        Description copied from interface: Decoder
        Decodes the next symbol from the given input bit stream.

        Note that InputBitStream implements BooleanIterator.

        Specified by:
        decode in interface Decoder
        Parameters:
        ibs - an input bit stream.
        Returns:
        the next symbol decoded from ibs.
        Throws:
        java.io.IOException