1 /* 2 * Copyright (C) 2010 mbelib Author 3 * GPG Key ID: 0xEA5EFE2C (9E7A 5527 9CDC EBF7 BF1B D772 4F98 E863 EA5E FE2C) 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 * PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 #ifndef _MBELIB_H 19 #define _MBELIB_H 20 21 #define MBELIB_VERSION "1.3.0" 22 23 struct mbe_parameters 24 { 25 float w0; 26 int L; 27 int K; 28 int Vl[57]; 29 float Ml[57]; 30 float log2Ml[57]; 31 float PHIl[57]; 32 float PSIl[57]; 33 float gamma; 34 int un; 35 int repeat; 36 }; 37 38 typedef struct mbe_parameters mbe_parms; 39 40 /* 41 * Prototypes from ecc.c 42 */ 43 void mbe_checkGolayBlock (long int *block); 44 int mbe_golay2312 (char *in, char *out); 45 int mbe_hamming1511 (char *in, char *out); 46 int mbe_7100x4400hamming1511 (char *in, char *out); 47 48 /* 49 * Prototypes from ambe3600x2400.c 50 */ 51 int mbe_eccAmbe3600x2400C0 (char ambe_fr[4][24]); 52 int mbe_eccAmbe3600x2400Data (char ambe_fr[4][24], char *ambe_d); 53 int mbe_decodeAmbe2400Parms (char *ambe_d, mbe_parms * cur_mp, mbe_parms * prev_mp); 54 void mbe_demodulateAmbe3600x2400Data (char ambe_fr[4][24]); 55 void mbe_processAmbe2400Dataf (float *aout_buf, int *errs, int *errs2, char *err_str, char ambe_d[49], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 56 void mbe_processAmbe2400Data (short *aout_buf, int *errs, int *errs2, char *err_str, char ambe_d[49], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 57 void mbe_processAmbe3600x2400Framef (float *aout_buf, int *errs, int *errs2, char *err_str, char ambe_fr[4][24], char ambe_d[49], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 58 void mbe_processAmbe3600x2400Frame (short *aout_buf, int *errs, int *errs2, char *err_str, char ambe_fr[4][24], char ambe_d[49], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 59 60 /* 61 * Prototypes from ambe3600x2450.c 62 */ 63 int mbe_eccAmbe3600x2450C0 (char ambe_fr[4][24]); 64 int mbe_eccAmbe3600x2450Data (char ambe_fr[4][24], char *ambe_d); 65 int mbe_decodeAmbe2450Parms (char *ambe_d, mbe_parms * cur_mp, mbe_parms * prev_mp); 66 void mbe_demodulateAmbe3600x2450Data (char ambe_fr[4][24]); 67 void mbe_processAmbe2450Dataf (float *aout_buf, int *errs, int *errs2, char *err_str, char ambe_d[49], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 68 void mbe_processAmbe2450Data (short *aout_buf, int *errs, int *errs2, char *err_str, char ambe_d[49], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 69 void mbe_processAmbe3600x2450Framef (float *aout_buf, int *errs, int *errs2, char *err_str, char ambe_fr[4][24], char ambe_d[49], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 70 void mbe_processAmbe3600x2450Frame (short *aout_buf, int *errs, int *errs2, char *err_str, char ambe_fr[4][24], char ambe_d[49], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 71 72 /* 73 * Prototypes from imbe7200x4400.c 74 */ 75 void mbe_dumpImbe4400Data (char *imbe_d); 76 void mbe_dumpImbe7200x4400Data (char *imbe_d); 77 void mbe_dumpImbe7200x4400Frame (char imbe_fr[8][23]); 78 int mbe_eccImbe7200x4400C0 (char imbe_fr[8][23]); 79 int mbe_eccImbe7200x4400Data (char imbe_fr[8][23], char *imbe_d); 80 int mbe_decodeImbe4400Parms (char *imbe_d, mbe_parms * cur_mp, mbe_parms * prev_mp); 81 void mbe_demodulateImbe7200x4400Data (char imbe[8][23]); 82 void mbe_processImbe4400Dataf (float *aout_buf, int *errs, int *errs2, char *err_str, char imbe_d[88], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 83 void mbe_processImbe4400Data (short *aout_buf, int *errs, int *errs2, char *err_str, char imbe_d[88], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 84 void mbe_processImbe7200x4400Framef (float *aout_buf, int *errs, int *errs2, char *err_str, char imbe_fr[8][23], char imbe_d[88], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 85 void mbe_processImbe7200x4400Frame (short *aout_buf, int *errs, int *errs2, char *err_str, char imbe_fr[8][23], char imbe_d[88], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 86 87 /* 88 * Prototypes from imbe7100x4400.c 89 */ 90 void mbe_dumpImbe7100x4400Data (char *imbe_d); 91 void mbe_dumpImbe7100x4400Frame (char imbe_fr[7][24]); 92 int mbe_eccImbe7100x4400C0 (char imbe_fr[7][24]); 93 int mbe_eccImbe7100x4400Data (char imbe_fr[7][24], char *imbe_d); 94 void mbe_demodulateImbe7100x4400Data (char imbe[7][24]); 95 void mbe_convertImbe7100to7200 (char *imbe_d); 96 void mbe_processImbe7100x4400Framef (float *aout_buf, int *errs, int *errs2, char *err_str, char imbe_fr[7][24], char imbe_d[88], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 97 void mbe_processImbe7100x4400Frame (short *aout_buf, int *errs, int *errs2, char *err_str, char imbe_fr[7][24], char imbe_d[88], mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced, int uvquality); 98 99 /* 100 * Prototypes from mbelib.c 101 */ 102 void mbe_printVersion (char *str); 103 void mbe_moveMbeParms (mbe_parms * cur_mp, mbe_parms * prev_mp); 104 void mbe_useLastMbeParms (mbe_parms * cur_mp, mbe_parms * prev_mp); 105 void mbe_initMbeParms (mbe_parms * cur_mp, mbe_parms * prev_mp, mbe_parms * prev_mp_enhanced); 106 void mbe_spectralAmpEnhance (mbe_parms * cur_mp); 107 void mbe_synthesizeSilencef (float *aout_buf); 108 void mbe_synthesizeSilence (short *aout_buf); 109 void mbe_synthesizeSpeechf (float *aout_buf, mbe_parms * cur_mp, mbe_parms * prev_mp, int uvquality); 110 void mbe_synthesizeSpeech (short *aout_buf, mbe_parms * cur_mp, mbe_parms * prev_mp, int uvquality); 111 void mbe_floattoshort (float *float_buf, short *aout_buf); 112 113 #endif 114