fixed-point: unquant_energy_mono() has received the fixed-point code from
[opus.git] / libcelt / mfrngcod.h
1 #if !defined(_mfrngcode_H)
2 # define _mfrngcode_H (1)
3 # include "entcode.h"
4
5 /*Constants used by the entropy encoder/decoder.*/
6
7 /*The number of bits to output at a time.*/
8 # define EC_SYM_BITS   (8)
9 /*The total number of bits in each of the state registers.*/
10 # define EC_CODE_BITS  (32)
11 /*The maximum symbol value.*/
12 # define EC_SYM_MAX    ((1U<<EC_SYM_BITS)-1)
13 /*Bits to shift by to move a symbol into the high-order position.*/
14 # define EC_CODE_SHIFT (EC_CODE_BITS-EC_SYM_BITS-1)
15 /*Carry bit of the high-order range symbol.*/
16 # define EC_CODE_TOP   (((ec_uint32)1U)<<EC_CODE_BITS-1)
17 /*Low-order bit of the high-order range symbol.*/
18 # define EC_CODE_BOT   (EC_CODE_TOP>>EC_SYM_BITS)
19 /*Code for which propagating carries are possible.*/
20 # define EC_CODE_CARRY (((ec_uint32)EC_SYM_MAX)<<EC_CODE_SHIFT)
21 /*The number of bits available for the last, partial symbol in the code field.*/
22 # define EC_CODE_EXTRA ((EC_CODE_BITS-2)%EC_SYM_BITS+1)
23 /*A mask for the bits available in the coding buffer.
24   This allows different platforms to use a variable with more bits, if it is
25    convenient.
26   We will only use EC_CODE_BITS of it.*/
27 # define EC_CODE_MASK  ((((ec_uint32)1U)<<EC_CODE_BITS-1)-1<<1|1)
28
29
30 /*The non-zero symbol of the second possible reserved ending.
31   This must be the high-bit.*/
32 # define EC_FOF_RSV1      (1<<EC_SYM_BITS-1)
33 /*A mask for all the other bits.*/
34 # define EC_FOF_RSV1_MASK (EC_FOF_RSV1-1)
35
36 #endif