shithub: opus

ref: e38c7c18f77ba03e4f3c18c6de5cc4cbb17dcdf3
dir: /libentcode/mfrngcod.h/

View raw version
#if !defined(_mfrngcode_H)
# define _mfrngcode_H (1)
# include "entcode.h"

/*Constants used by the entropy encoder/decoder.*/

/*The number of bits to output at a time.*/
# define EC_SYM_BITS   (8)
/*The total number of bits in each of the state registers.*/
# define EC_CODE_BITS  (32)
/*The maximum symbol value.*/
# define EC_SYM_MAX    ((1U<<EC_SYM_BITS)-1)
/*Bits to shift by to move a symbol into the high-order position.*/
# define EC_CODE_SHIFT (EC_CODE_BITS-EC_SYM_BITS-1)
/*Carry bit of the high-order range symbol.*/
# define EC_CODE_TOP   (1U<<EC_CODE_BITS-1)
/*Low-order bit of the high-order range symbol.*/
# define EC_CODE_BOT   (EC_CODE_TOP>>EC_SYM_BITS)
/*Code for which propogating carries are possible.*/
# define EC_CODE_CARRY (EC_SYM_MAX<<EC_CODE_SHIFT)
/*The number of bits available for the last, partial symbol in the code field.*/
# define EC_CODE_EXTRA ((EC_CODE_BITS-2)%EC_SYM_BITS+1)
/*A mask for the bits available in the coding buffer.
  This allows different platforms to use a variable with more bits, if it is
   convenient.
  We will only use EC_CODE_BITS of it.*/
# define EC_CODE_MASK  ((1U<<EC_CODE_BITS-1)-1<<1|1)


/*The non-zero symbol of the second possible reserved ending.
  This must be the high-bit.*/
# define EC_FOF_RSV1      (1<<EC_SYM_BITS-1)
/*A mask for all the other bits.*/
# define EC_FOF_RSV1_MASK (EC_FOF_RSV1-1)

#endif