private static ByteBuffer uncompress_order1_way4(final ByteBuffer in, final ByteBuffer out_buf) { final Decoding.AriDecoder[] D = new Decoding.AriDecoder[256]; final Decoding.RansDecSymbol[][] syms = new Decoding.RansDecSymbol[256][256]; for (int i = 0; i < syms.length; i++) for (int j = 0; j < syms[i].length; j++) syms[i][j] = new Decoding.RansDecSymbol(); Frequencies.readStats_o1(in, D, syms); D14.uncompress(in, out_buf, D, syms); return out_buf; } }
static int RansDecAdvanceSymbol(final int r, final ByteBuffer pptr, final RansDecSymbol sym, final int scale_bits) { return Decoding .RansDecAdvance(r, pptr, sym.start, sym.freq, scale_bits); }
private static ByteBuffer uncompress_order0_way4(final ByteBuffer in, final ByteBuffer out) { in.order(ByteOrder.LITTLE_ENDIAN); final Decoding.AriDecoder D = new Decoding.AriDecoder(); final Decoding.RansDecSymbol[] syms = new Decoding.RansDecSymbol[256]; for (int i = 0; i < syms.length; i++) syms[i] = new Decoding.RansDecSymbol(); Frequencies.readStats_o0(in, D, syms); D04.uncompress(in, D, syms, out); return out; }
private static ByteBuffer encode_order0_way4(final ByteBuffer in, ByteBuffer out_buf) { final int in_size = in.remaining(); out_buf = allocateIfNeeded(in_size, out_buf); final int freqTableStart = PREFIX_BYTE_LENGTH; out_buf.position(freqTableStart); final int[] F = Frequencies.calcFrequencies_o0(in); final RansEncSymbol[] syms = Frequencies.buildSyms_o0(F); final ByteBuffer cp = out_buf.slice(); final int frequencyTable_size = Frequencies.writeFrequencies_o0(cp, F); in.rewind(); final int compressedBlob_size = E04.compress(in, syms, cp); finalizeCompressed(0, out_buf, in_size, frequencyTable_size, compressedBlob_size); return out_buf; }
private static ByteBuffer encode_order1_way4(final ByteBuffer in, ByteBuffer out_buf) { final int in_size = in.remaining(); out_buf = allocateIfNeeded(in_size, out_buf); final int freqTableStart = PREFIX_BYTE_LENGTH; out_buf.position(freqTableStart); final int[][] F = Frequencies.calcFrequencies_o1(in); final RansEncSymbol[][] syms = Frequencies.buildSyms_o1(F); final ByteBuffer cp = out_buf.slice(); final int frequencyTable_size = Frequencies.writeFrequencies_o1(cp, F); in.rewind(); final int compressedBlob_size = E14.compress(in, syms, cp); finalizeCompressed(1, out_buf, in_size, frequencyTable_size, compressedBlob_size); return out_buf; }
static RansEncSymbol[] buildSyms_o0(final int[] F) { final int[] C = new int[256]; final RansEncSymbol[] syms = new RansEncSymbol[256]; for (int i = 0; i < syms.length; i++) syms[i] = new RansEncSymbol(); int T = 0; for (int j = 0; j < 256; j++) { C[j] = T; T += F[j]; if (F[j] != 0) { Encoding.RansEncSymbolInit(syms[j], C[j], F[j], Constants.TF_SHIFT); } } return syms; }
static int RansDecAdvanceSymbolStep(final int r, final RansDecSymbol sym, final int scale_bits) { return RansDecAdvanceStep(r, sym.start, sym.freq, scale_bits); }
private byte[] randomBytes_GD(int size, double p) { byte[] data = new byte[size]; randomBytes_GD(data, p); return data; }
private void randomBytes_GD(byte[] data, double p) { for (int i = 0; i < data.length; i++) data[i] = randomByteGeometricDistribution(p); }
private static ByteBuffer encode_order0_way4(final ByteBuffer in, ByteBuffer out_buf) { final int in_size = in.remaining(); out_buf = allocateIfNeeded(in_size, out_buf); final int freqTableStart = PREFIX_BYTE_LENGTH; out_buf.position(freqTableStart); final int[] F = Frequencies.calcFrequencies_o0(in); final RansEncSymbol[] syms = Frequencies.buildSyms_o0(F); final ByteBuffer cp = out_buf.slice(); final int frequencyTable_size = Frequencies.writeFrequencies_o0(cp, F); in.rewind(); final int compressedBlob_size = E04.compress(in, syms, cp); finalizeCompressed(0, out_buf, in_size, frequencyTable_size, compressedBlob_size); return out_buf; }
private static ByteBuffer encode_order1_way4(final ByteBuffer in, ByteBuffer out_buf) { final int in_size = in.remaining(); out_buf = allocateIfNeeded(in_size, out_buf); final int freqTableStart = PREFIX_BYTE_LENGTH; out_buf.position(freqTableStart); final int[][] F = Frequencies.calcFrequencies_o1(in); final RansEncSymbol[][] syms = Frequencies.buildSyms_o1(F); final ByteBuffer cp = out_buf.slice(); final int frequencyTable_size = Frequencies.writeFrequencies_o1(cp, F); in.rewind(); final int compressedBlob_size = E14.compress(in, syms, cp); finalizeCompressed(1, out_buf, in_size, frequencyTable_size, compressedBlob_size); return out_buf; }
private static ByteBuffer uncompress_order0_way4(final ByteBuffer in, final ByteBuffer out) { in.order(ByteOrder.LITTLE_ENDIAN); final Decoding.AriDecoder D = new Decoding.AriDecoder(); final Decoding.RansDecSymbol[] syms = new Decoding.RansDecSymbol[256]; for (int i = 0; i < syms.length; i++) syms[i] = new Decoding.RansDecSymbol(); Frequencies.readStats_o0(in, D, syms); D04.uncompress(in, D, syms, out); return out; }
private static ByteBuffer uncompress_order1_way4(final ByteBuffer in, final ByteBuffer out_buf) { final Decoding.AriDecoder[] D = new Decoding.AriDecoder[256]; final Decoding.RansDecSymbol[][] syms = new Decoding.RansDecSymbol[256][256]; for (int i = 0; i < syms.length; i++) for (int j = 0; j < syms[i].length; j++) syms[i][j] = new Decoding.RansDecSymbol(); Frequencies.readStats_o1(in, D, syms); D14.uncompress(in, out_buf, D, syms); return out_buf; } }
static RansEncSymbol[] buildSyms_o0(final int[] F) { final int[] C = new int[256]; final RansEncSymbol[] syms = new RansEncSymbol[256]; for (int i = 0; i < syms.length; i++) syms[i] = new RansEncSymbol(); int T = 0; for (int j = 0; j < 256; j++) { C[j] = T; T += F[j]; if (F[j] != 0) { Encoding.RansEncSymbolInit(syms[j], C[j], F[j], Constants.TF_SHIFT); } } return syms; }
static int RansDecAdvanceSymbol(final int r, final ByteBuffer pptr, final RansDecSymbol sym, final int scale_bits) { return Decoding .RansDecAdvance(r, pptr, sym.start, sym.freq, scale_bits); }
static int RansDecAdvanceSymbolStep(final int r, final RansDecSymbol sym, final int scale_bits) { return RansDecAdvanceStep(r, sym.start, sym.freq, scale_bits); }
static RansEncSymbol[][] buildSyms_o1(final int[][] F) { final RansEncSymbol[][] syms = new RansEncSymbol[256][256]; for (int i = 0; i < syms.length; i++) for (int j = 0; j < syms[i].length; j++) syms[i][j] = new RansEncSymbol(); for (int i = 0; i < 256; i++) { final int[] F_i_ = F[i]; int x = 0; for (int j = 0; j < 256; j++) { if (F_i_[j] != 0) { Encoding.RansEncSymbolInit(syms[i][j], x, F_i_[j], Constants.TF_SHIFT); x += F_i_[j]; } } } return syms; }
static RansEncSymbol[][] buildSyms_o1(final int[][] F) { final RansEncSymbol[][] syms = new RansEncSymbol[256][256]; for (int i = 0; i < syms.length; i++) for (int j = 0; j < syms[i].length; j++) syms[i][j] = new RansEncSymbol(); for (int i = 0; i < 256; i++) { final int[] F_i_ = F[i]; int x = 0; for (int j = 0; j < 256; j++) { if (F_i_[j] != 0) { Encoding.RansEncSymbolInit(syms[i][j], x, F_i_[j], Constants.TF_SHIFT); x += F_i_[j]; } } } return syms; }