Class CodeWordCoder

java.lang.Object
it.unimi.dsi.compression.CodeWordCoder
All Implemented Interfaces:
Coder, PrefixCoder, Serializable
Direct Known Subclasses:
Fast64CodeWordCoder

public class CodeWordCoder extends Object implements PrefixCoder, Serializable
A coder based on a set of codewords.
See Also:
  • Field Details

    • codeWord

      protected final BitVector[] codeWord
      The array of codewords of this coder.
  • Constructor Details

    • CodeWordCoder

      public CodeWordCoder(BitVector[] codeWord)
      Creates a new codeword-based coder using the given vector of codewords. The coder will be able to encode symbols numbered from 0 to codeWord.length-1, included.
      Parameters:
      codeWord - a vector of codewords.
  • Method Details

    • encode

      public BooleanIterator encode(int symbol)
      Description copied from interface: Coder
      Encodes a symbol.
      Specified by:
      encode in interface Coder
      Parameters:
      symbol - a symbol.
      Returns:
      a boolean iterator returning the bits coding symbol.
    • encode

      public int encode(int symbol, OutputBitStream obs) throws IOException
      Description copied from interface: Coder
      Encodes a symbol.
      Specified by:
      encode in interface Coder
      Parameters:
      symbol - a symbol.
      obs - the output bit stream where the encoded symbol will be written.
      Returns:
      the number of bits written.
      Throws:
      IOException
    • flush

      public int flush(OutputBitStream unused)
      Description copied from interface: Coder
      Flushes the coder. Warning: this method will not flush obs.
      Specified by:
      flush in interface Coder
      Parameters:
      unused - the output bit stream where the flushing bits will be written.
      Returns:
      the number of bits written to flush the coder.
    • flush

      public BooleanIterator flush()
      Description copied from interface: Coder
      Flushes the coder.
      Specified by:
      flush in interface Coder
      Returns:
      a boolean iterator returning the bits used to flush this coder.
    • codeWords

      public BitVector[] codeWords()
      Description copied from interface: PrefixCoder
      Provides access to the codewords. Warning: bit 0 of each bit vector returned by PrefixCoder.codeWords() is the first (leftmost) bit of the corresponding codeword: in other words, codewords are stored in right-to-left fashion.
      Specified by:
      codeWords in interface PrefixCoder
      Returns:
      the codewords.