summaryrefslogtreecommitdiffstats
path: root/baseline/source/gsm_dec/private.h
blob: 80b5c832ffd76def80b7d0f33c617c59d84cee48 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef GSM_DEC_PRIVATE_H
#define GSM_DEC_PRIVATE_H

typedef short     word;   /* 16 bit signed int  */
typedef long      longword; /* 32 bit signed int  */

typedef unsigned short    uword;    /* unsigned word  */
typedef unsigned long   ulongword;  /* unsigned longword  */

/*   Table 4.6   Normalized direct mantissa used to compute xM/xmax
*/
/* i  0      1      2      3      4      5      6      7   */
word gsm_dec_FAC[8] = { 
  18431, 20479, 22527, 24575, 26623, 28671, 30719, 32767 };

struct gsm_state {
  word    dp0[ 280 ];
  word    z1;   /* preprocessing.c, Offset_com. */
  longword  L_z2;   /*                  Offset_com. */
  int   mp;   /*                  Preemphasis */
  word   u[8];   /* short_term_aly_filter.c  */
  word    LARpp[2][8];  /*                              */
  word    j;    /*                              */
  word    nrp; /* 40 */ /* long_term.c, synthesis */
  word    v[9];   /* short_term.c, synthesis  */
  word    msr;    /* decoder.c, Postprocessing  */
};


#define MIN_WORD  ((-32767)-1)
#define MAX_WORD  ( 32767)

#define MIN_LONGWORD  ((-2147483647)-1)
#define MAX_LONGWORD  ( 2147483647)

/* >> is a signed arithmetic shift right */
#define SASR(x, by) ((x) >> (by))

/*   Table 4.3b   Quantization levels of the LTP gain quantizer
*/
/* bc         0          1        2          3      */
word gsm_dec_QLB[4] = {  3277,    11469,  21299,     32767  };

#endif /* GSM_DEC_PRIVATE_H */