1################# REMOVE warnings on trimedia compiler ############################## 2################# Not critical to compilation ############################## 3 41. Change the following statements to remove warning for constant expression 5(i) mdf.c [if(0) --> #if 0] 6(ii) preprocess.c [if(1) --> #if 1] 7 82. add REMARK_ON macro to remove warning on not reference variable 9-- uses (void)<variable> to remove warning on not referenced variable 10-- #define REMARK_ON 11-- (void)<variable> 12-- #endif 13-- search for REMARK_ON on the following files 14(i) jitter.c 15(ii) mdf.c 16(iii) filterbank.c 17(iv) preprocess.c 18 193. commented out the following in pseudofloat.h for unused variable 20//static const spx_float_t FLOAT_HALF = {16384,-15}; 21 22################# Patches for trimedia compiler ############################## 23################# Critical to compilation ############################## 24 25-- added the #elif defined (TM_ASM) to the following files for optimized codes 26(1) arch.h 27(2) fftwrap.c 28(3) filterbank.c 29(4) kiss_fft.c 30(5) kiss_fftr.c 31(6) mdf.c 32(7) preprocess.c 33 34-- added macro PREPROCESS_MDF_FLOAT to allow using of floating point 35-- in mdf and preprocess while keeping fixed point in encoder/decoder 36-- This is due to the fact that preprocess/mdf run faster on floating 37-- point on trimedia 38-- added the following 3 lines to the files below 39#ifdef PREPROCESS_MDF_FLOAT 40#undef FIXED_POINT 41#endif 42(1) mdf.c 43(2) preprocess.c 44(3) filterbank.c 45(4) fftwrap.c 46(5) kiss_fft.c 47(6) kiss_fftr.c 48 49-- created a new USE_COMPACT_KISS_FFT for fftwrap.c and shifted defination 50-- to config file so that user configure the usage of fft on config.h 51-- TOEXPLORE:is it possible to share table between mdf/preprocess? 52-- Introducing this macro made the following changes in C code 53-- New macro to facilitate integration 54(grouping real/complex for dc and nyquist frequency seems to require a large 55amount of memory for mdf, therefore did not made the changes for that) 56(1) modify preprocess.c on init and destroy 57(2) modify mdf.c on init and destroy 58(3) shifted power_spectrum to fftwrap.c to share optimised code between 59 preprocess.c and mdf.c 60 61################# NOTES ############################## 62(1) fixed point encoding/decoding is tested on narrowband 63 - some of the QX fractions are packed together to 64 (frac1 * a + frac2 * a) >> X (should be more accurate in rounding) 65 instead of 66 ((frac1 * a) >> X) + ((frac2 * a) >> X) 67 will cause some different between optimized and unoptimized code. 68 tried decoding/encoding optimized code on some audio files retains 69 the clearity of the word 70 71 - wideband/ultrawideband is not heavily tested yet 72 73(2) optimized fixed point code requires memory alignment 74 - used config to debug on functions where memory is not align 75 76(3) floating point optimization for preprocess/mdf is tested 77 fixed point is not tested yet (except fft/filterbank) 78 Note (1) also applies to sround in fft for fixed point 79 some optimization is provided for fixed point as it requires lesser 80 memory compared to floating point. 81 82(4) unroll configurations provided to reduce code size if required 83 84(5) use profile options only if compiler profiling fails to work 85 86(6) can't include the makefile as it is close proprietary 87 88################# TODO:For Trimedia ############################## 89(1) Optimizations for fixed point in mdf/preprocess 90 91################# Added Files ############################## 92- _kiss_fft_guts_tm.h 93- fftwrap_tm.h 94- filterbank_tm.h 95- filters_tm.h 96- fixed_tm.h 97- kiss_fft_tm.h 98- kiss_fftr_tm.h 99- mdf_tm.h 100- misc_tm.h 101- preprocess_tm.h 102- config.h 103- speex_config_types.h 104