FreeCalypso > hg > gsm-codec-lib
annotate libgsmfr2/ed_internal.h @ 520:785b302992f0
miscutil: new program gsmx-to-tw5a
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Thu, 19 Sep 2024 01:06:58 +0000 | 
| parents | 8b21a6b7a3bf | 
| children | 
| rev | line source | 
|---|---|
| 264 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 * This header file has been adapted from inc/private.h | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 * in TU-Berlin libgsm source, original notice follows: | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 * | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 * Universitaet Berlin. See the accompanying file "COPYRIGHT" for | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 #define SASR(x, by) ((x) >> (by)) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 /* | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 * Prototypes from add.c | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 extern word gsm_mult (word a, word b); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 extern longword gsm_L_mult (word a, word b); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 extern word gsm_mult_r (word a, word b); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 extern word gsm_div (word num, word denum); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 extern word gsm_add ( word a, word b ); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 extern longword gsm_L_add ( longword a, longword b ); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 extern word gsm_sub (word a, word b); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 extern longword gsm_L_sub (longword a, longword b); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 extern word gsm_abs (word a); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 extern word gsm_norm ( longword a ); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 extern longword gsm_L_asl (longword a, int n); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 extern word gsm_asl (word a, int n); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 extern longword gsm_L_asr (longword a, int n); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 extern word gsm_asr (word a, int n); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 /* | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 * Inlined functions from add.h | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 /* | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 * #define GSM_MULT_R(a, b) (* word a, word b, !(a == b == MIN_WORD) *) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 * (0x0FFFF & SASR(((longword)(a) * (longword)(b) + 16384), 15)) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 #define GSM_MULT_R(a, b) /* word a, word b, !(a == b == MIN_WORD) */ \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 (SASR( ((longword)(a) * (longword)(b) + 16384), 15 )) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 # define GSM_MULT(a,b) /* word a, word b, !(a == b == MIN_WORD) */ \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 (SASR( ((longword)(a) * (longword)(b)), 15 )) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 # define GSM_L_MULT(a, b) /* word a, word b */ \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 (((longword)(a) * (longword)(b)) << 1) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 # define GSM_L_ADD(a, b) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 ( (a) < 0 ? ( (b) >= 0 ? (a) + (b) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 : (utmp = (ulongword)-((a) + 1) + (ulongword)-((b) + 1)) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 >= MAX_LONGWORD ? MIN_LONGWORD : -(longword)utmp-2 ) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 : ((b) <= 0 ? (a) + (b) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 : (utmp = (ulongword)(a) + (ulongword)(b)) >= MAX_LONGWORD \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 ? MAX_LONGWORD : utmp)) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 /* | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 * # define GSM_ADD(a, b) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 * ((ltmp = (longword)(a) + (longword)(b)) >= MAX_WORD \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 * ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 /* Nonportable, but faster: */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 #define GSM_ADD(a, b) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 ((ulongword)((ltmp = (longword)(a) + (longword)(b)) - MIN_WORD) > \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 MAX_WORD - MIN_WORD ? (ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 # define GSM_SUB(a, b) \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 ((ltmp = (longword)(a) - (longword)(b)) >= MAX_WORD \ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 # define GSM_ABS(a) ((a) < 0 ? ((a) == MIN_WORD ? MAX_WORD : -(a)) : (a)) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 /* Use these if necessary: | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 # define GSM_MULT_R(a, b) gsm_mult_r(a, b) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 # define GSM_MULT(a, b) gsm_mult(a, b) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 # define GSM_L_MULT(a, b) gsm_L_mult(a, b) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 # define GSM_L_ADD(a, b) gsm_L_add(a, b) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 # define GSM_ADD(a, b) gsm_add(a, b) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 # define GSM_SUB(a, b) gsm_sub(a, b) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 # define GSM_ABS(a) gsm_abs(a) | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 /* | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 * More prototypes from implementations.. | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 void Gsm_Long_Term_Predictor ( /* 4x for 160 samples */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 struct gsmfr_0610_state * S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 word * d, /* [0..39] residual signal IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 word * dp, /* [-120..-1] d' IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 word * e, /* [0..40] OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 word * dpp, /* [0..40] OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 word * Nc, /* correlation lag OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 word * bc /* gain factor OUT */); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 void Gsm_LPC_Analysis ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 struct gsmfr_0610_state * S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 word * s, /* 0..159 signals IN/OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 word * LARc); /* 0..7 LARc's OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 void Gsm_Preprocess ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 struct gsmfr_0610_state * S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 const word * s, word * so); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 void Gsm_Encoding ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 struct gsmfr_0610_state * S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 word * e, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 word * ep, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 word * xmaxc, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 word * Mc, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 word * xMc); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 void Gsm_Short_Term_Analysis_Filter ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 struct gsmfr_0610_state * S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 const word * LARc, /* coded log area ratio [0..7] IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 word * d /* st res. signal [0..159] IN/OUT */); | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 void Gsm_Decoding ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 struct gsmfr_0610_state * S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 word xmaxcr, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 word Mcr, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 const word * xMcr, /* [0..12] IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 word * erp); /* [0..39] OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 void Gsm_Long_Term_Synthesis_Filtering ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 struct gsmfr_0610_state* S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 word Ncr, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 word bcr, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 word * erp, /* [0..39] IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 word * drp); /* [-120..-1] IN, [0..40] OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 void Gsm_RPE_Decoding ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 struct gsmfr_0610_state *S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 word xmaxcr, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 word Mcr, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 const word * xMcr, /* [0..12], 3 bits IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 word * erp); /* [0..39] OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 void Gsm_RPE_Encoding ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 struct gsmfr_0610_state * S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 word * e, /* -5..-1][0..39][40..44 IN/OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 word * xmaxc, /* OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 word * Mc, /* OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 word * xMc); /* [0..12] OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 void Gsm_Short_Term_Synthesis_Filter ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 struct gsmfr_0610_state * S, | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 const word * LARcr, /* log area ratios [0..7] IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 word * drp, /* received d [0...39] IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 word * s); /* signal s [0..159] OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 void Gsm_Update_of_reconstructed_short_time_residual_signal ( | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 word * dpp, /* [0...39] IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 word * ep, /* [0...39] IN */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 word * dp); /* [-120...-1] IN/OUT */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 /* | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 * Tables from table.c | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 */ | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 extern word gsm_A[8], gsm_B[8], gsm_MIC[8], gsm_MAC[8]; | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 extern word gsm_INVA[8]; | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 extern word gsm_DLB[4], gsm_QLB[4]; | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 extern word gsm_H[11]; | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 extern word gsm_NRFAC[8]; | 
| 
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 extern word gsm_FAC[8]; | 
