jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 1 | ################# REMOVE warnings on trimedia compiler ##############################
|
| 2 | ################# Not critical to compilation ##############################
|
| 3 |
|
| 4 | 1. Change the following statements to remove warning for constant expression
|
| 5 | (i) mdf.c [if(0) --> #if 0]
|
Tristan Matthews | 5927368 | 2014-12-06 19:42:15 -0500 | [diff] [blame] | 6 | (ii) preprocess.c [if(1) --> #if 1]
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 7 |
|
| 8 | 2. 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
|
Tristan Matthews | 5927368 | 2014-12-06 19:42:15 -0500 | [diff] [blame] | 15 | (ii) mdf.c
|
| 16 | (iii) filterbank.c
|
| 17 | (iv) preprocess.c
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 18 |
|
| 19 | 3. commented out the following in pseudofloat.h for unused variable
|
| 20 | //static const spx_float_t FLOAT_HALF = {16384,-15};
|
| 21 |
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 22 | ################# Patches for trimedia compiler ##############################
|
| 23 | ################# Critical to compilation ##############################
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 24 |
|
| 25 | -- added the #elif defined (TM_ASM) to the following files for optimized codes
|
| 26 | (1) arch.h
|
Tristan Matthews | 5927368 | 2014-12-06 19:42:15 -0500 | [diff] [blame] | 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
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 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
|
| 55 | amount 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 ##############################
|
Tristan Matthews | 5927368 | 2014-12-06 19:42:15 -0500 | [diff] [blame] | 89 | (1) Optimizations for fixed point in mdf/preprocess
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 90 |
|
| 91 | ################# Added Files ##############################
|
| 92 | - _kiss_fft_guts_tm.h
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 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
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 99 | - mdf_tm.h
|
| 100 | - misc_tm.h
|
| 101 | - preprocess_tm.h
|
jm | 4c7f0a5 | 2007-03-15 13:13:25 +0000 | [diff] [blame] | 102 | - config.h
|
| 103 | - speex_config_types.h
|