schroarith

schroarith

Synopsis




                    SchroArith;
                    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);
void                schro_arith_init_contexts           (SchroArith *arith);
void                schro_arith_context_encode_bit      (SchroArith *arith,
                                                         int context,
                                                         int value);
void                schro_arith_context_encode_uint     (SchroArith *arith,
                                                         int cont_context,
                                                         int value_context,
                                                         int value);
void                schro_arith_context_encode_sint     (SchroArith *arith,
                                                         int cont_context,
                                                         int value_context,
                                                         int sign_context,
                                                         int value);
int                 schro_arith_context_decode_bit      (SchroArith *arith,
                                                         int context);
int                 schro_arith_context_decode_uint     (SchroArith *arith,
                                                         int cont_context,
                                                         int value_context);
int                 schro_arith_context_decode_sint     (SchroArith *arith,
                                                         int cont_context,
                                                         int value_context,
                                                         int sign_context);

Description

Details

SchroArith

typedef struct {
  uint32_t range[2];
  uint32_t code;
  int cntr;

  uint8_t *dataptr;
  int offset;
  int carry;
  SchroArithContext contexts[SCHRO_CTX_LAST];

  SchroBuffer *buffer;
} SchroArith;


SchroArithContext

typedef struct {
  uint16_t count[2];
  int next;
  int n;
  uint16_t probability;
} SchroArithContext;


schro_arith_new ()

SchroArith*         schro_arith_new                     (void);

Returns :


schro_arith_free ()

void                schro_arith_free                    (SchroArith *arith);

arith :


schro_arith_decode_init ()

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

arith :

buffer :


schro_arith_encode_init ()

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

arith :

buffer :


schro_arith_flush ()

void                schro_arith_flush                   (SchroArith *arith);

arith :


schro_arith_init_contexts ()

void                schro_arith_init_contexts           (SchroArith *arith);

arith :


schro_arith_context_encode_bit ()

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

arith :

context :

value :


schro_arith_context_encode_uint ()

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

arith :

cont_context :

value_context :

value :


schro_arith_context_encode_sint ()

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

arith :

cont_context :

value_context :

sign_context :

value :


schro_arith_context_decode_bit ()

int                 schro_arith_context_decode_bit      (SchroArith *arith,
                                                         int context);

arith :

context :

Returns :


schro_arith_context_decode_uint ()

int                 schro_arith_context_decode_uint     (SchroArith *arith,
                                                         int cont_context,
                                                         int value_context);

arith :

cont_context :

value_context :

Returns :


schro_arith_context_decode_sint ()

int                 schro_arith_context_decode_sint     (SchroArith *arith,
                                                         int cont_context,
                                                         int value_context,
                                                         int sign_context);

arith :

cont_context :

value_context :

sign_context :

Returns :