schroarith

schroarith

Functions

Types and Values

Description

Functions

schro_arith_new ()

SchroArith *
schro_arith_new (void);

schro_arith_free ()

void
schro_arith_free (SchroArith *arith);

schro_arith_decode_init ()

void
schro_arith_decode_init (SchroArith *arith,
                         SchroBuffer *buffer);

schro_arith_encode_init ()

void
schro_arith_encode_init (SchroArith *arith,
                         SchroBuffer *buffer);

schro_arith_flush ()

void
schro_arith_flush (SchroArith *arith);

schro_arith_decode_bit ()

int
schro_arith_decode_bit (SchroArith *arith,
                        unsigned int context);

schro_arith_decode_flush ()

void
schro_arith_decode_flush (SchroArith *arith);

schro_arith_decode_sint ()

int
schro_arith_decode_sint (SchroArith *arith,
                         unsigned int cont_context,
                         unsigned int value_context,
                         unsigned int sign_context);

schro_arith_decode_uint ()

int
schro_arith_decode_uint (SchroArith *arith,
                         unsigned int cont_context,
                         unsigned int value_context);

schro_arith_encode_bit ()

void
schro_arith_encode_bit (SchroArith *arith,
                        int context,
                        int value);

schro_arith_encode_sint ()

void
schro_arith_encode_sint (SchroArith *arith,
                         int cont_context,
                         int value_context,
                         int sign_context,
                         int value);

schro_arith_encode_uint ()

void
schro_arith_encode_uint (SchroArith *arith,
                         int cont_context,
                         int value_context,
                         int value);

schro_arith_estimate_init ()

void
schro_arith_estimate_init (SchroArith *arith);

schro_arith_estimate_sint ()

void
schro_arith_estimate_sint (SchroArith *arith,
                           int cont_context,
                           int value_context,
                           int sign_context,
                           int value);

schro_arith_estimate_uint ()

void
schro_arith_estimate_uint (SchroArith *arith,
                           int cont_context,
                           int value_context,
                           int value);

Types and Values

struct SchroArith

struct SchroArith {
  SchroBuffer *buffer;
  uint8_t *dataptr;
  uintptr_t offset;

  uint32_t range[2];
  uint32_t code;
  uint32_t range_size;
  int cntr;
  int carry;

  uint16_t probabilities[SCHRO_CTX_LAST];
  uint16_t lut[512];
  SchroArithContext contexts[SCHRO_CTX_LAST];
};

struct SchroArithContext

struct SchroArithContext {
  unsigned int next;
#ifdef unused
  int stat_range;
  int n_bits;
  int n_symbols;
  int ones;
#endif
};