Synopsis
struct SchroArith;
struct SchroArithContext;
SchroArith * schro_arith_new (void);
void schro_arith_free (SchroArith *arith);
void schro_arith_decode_init (SchroArith *arith,
SchroBuffer *buffer);
void schro_arith_encode_init (SchroArith *arith,
SchroBuffer *buffer);
void schro_arith_flush (SchroArith *arith);
int schro_arith_decode_bit (SchroArith *arith,
unsigned int context);
void schro_arith_decode_flush (SchroArith *arith);
int schro_arith_decode_sint (SchroArith *arith,
unsigned int cont_context,
unsigned int value_context,
unsigned int sign_context);
int schro_arith_decode_uint (SchroArith *arith,
unsigned int cont_context,
unsigned int value_context);
void schro_arith_encode_bit (SchroArith *arith,
int context,
int value);
void schro_arith_encode_sint (SchroArith *arith,
int cont_context,
int value_context,
int sign_context,
int value);
void schro_arith_encode_uint (SchroArith *arith,
int cont_context,
int value_context,
int value);
void schro_arith_estimate_init (SchroArith *arith);
void schro_arith_estimate_sint (SchroArith *arith,
int cont_context,
int value_context,
int sign_context,
int value);
void schro_arith_estimate_uint (SchroArith *arith,
int cont_context,
int value_context,
int value);
Details
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
};
schro_arith_new ()
SchroArith * schro_arith_new (void);
schro_arith_free ()
void schro_arith_free (SchroArith *arith);
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);