Class AnsCompression

java.lang.Object
org.h2.dev.util.AnsCompression

public class AnsCompression extends Object
An ANS (Asymmetric Numeral Systems) compression tool. It uses the range variant.
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    countFrequencies(int[] freq, byte[] data)
    Count the frequencies of codes in the data, and increment the target frequency table.
    static byte[]
    decode(int[] freq, byte[] data, int length)
    Decode the data.
    static byte[]
    encode(int[] freq, byte[] data)
    Encode the data.
    static void
    scaleFrequencies(int[] freq, int total)
    Scale the frequencies to a new total.

    Methods inherited from class java.lang.Object

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

    • countFrequencies

      public static void countFrequencies(int[] freq, byte[] data)
      Count the frequencies of codes in the data, and increment the target frequency table.
      Parameters:
      freq - the target frequency table
      data - the data
    • scaleFrequencies

      public static void scaleFrequencies(int[] freq, int total)
      Scale the frequencies to a new total. Frequencies of 0 are kept as 0; larger frequencies result in at least 1.
      Parameters:
      freq - the (source and target) frequency table
      total - the target total (sum of all frequencies)
    • encode

      public static byte[] encode(int[] freq, byte[] data)
      Encode the data.
      Parameters:
      freq - the frequency table (will be scaled)
      data - the source data (uncompressed)
      Returns:
      the compressed data
    • decode

      public static byte[] decode(int[] freq, byte[] data, int length)
      Decode the data.
      Parameters:
      freq - the frequency table (will be scaled)
      data - the compressed data
      length - the target length
      Returns:
      the uncompressed result