Class Bzip2MTFAndRLE2StageEncoder

java.lang.Object
io.netty.handler.codec.compression.Bzip2MTFAndRLE2StageEncoder

final class Bzip2MTFAndRLE2StageEncoder extends Object
An encoder for the Bzip2 Move To Front Transform and Run-Length Encoding[2] stages.
Although conceptually these two stages are separate, it is computationally efficient to perform them in one pass.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
    The encoded alphabet size.
    private final int[]
    The Burrows-Wheeler transformed block.
    private final int
    Actual length of the data in the bwtBlock array.
    private final boolean[]
    At each position, true if the byte value with that index is present within the block, otherwise false.
    private final char[]
    The output of the Move To Front Transform and Run-Length Encoding[2] stages.
    private int
    The actual number of values contained in the mtfBlock array.
    private final int[]
    The global frequencies of values within the mtfBlock array.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Bzip2MTFAndRLE2StageEncoder(int[] bwtBlock, int bwtLength, boolean[] bwtValuesPresent)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    (package private) void
    Performs the Move To Front transform and Run Length Encoding[1] stages.
    (package private) int
     
    (package private) char[]
     
    (package private) int
     
    (package private) int[]
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • bwtBlock

      private final int[] bwtBlock
      The Burrows-Wheeler transformed block.
    • bwtLength

      private final int bwtLength
      Actual length of the data in the bwtBlock array.
    • bwtValuesPresent

      private final boolean[] bwtValuesPresent
      At each position, true if the byte value with that index is present within the block, otherwise false.
    • mtfBlock

      private final char[] mtfBlock
      The output of the Move To Front Transform and Run-Length Encoding[2] stages.
    • mtfLength

      private int mtfLength
      The actual number of values contained in the mtfBlock array.
    • mtfSymbolFrequencies

      private final int[] mtfSymbolFrequencies
      The global frequencies of values within the mtfBlock array.
    • alphabetSize

      private int alphabetSize
      The encoded alphabet size.
  • Constructor Details

    • Bzip2MTFAndRLE2StageEncoder

      Bzip2MTFAndRLE2StageEncoder(int[] bwtBlock, int bwtLength, boolean[] bwtValuesPresent)
      Parameters:
      bwtBlock - The Burrows Wheeler Transformed block data
      bwtLength - The actual length of the BWT data
      bwtValuesPresent - The values that are present within the BWT data. For each index, true if that value is present within the data, otherwise false
  • Method Details

    • encode

      void encode()
      Performs the Move To Front transform and Run Length Encoding[1] stages.
    • mtfBlock

      char[] mtfBlock()
      Returns:
      The encoded MTF block
    • mtfLength

      int mtfLength()
      Returns:
      The actual length of the MTF block
    • mtfAlphabetSize

      int mtfAlphabetSize()
      Returns:
      The size of the MTF block's alphabet
    • mtfSymbolFrequencies

      int[] mtfSymbolFrequencies()
      Returns:
      The frequencies of the MTF block's symbols