comparison mpegaudio_tablegen.h @ 10497:8b4b365d08f5 libavcodec

Simpliy exp*table init, based on patch by reimar.
author michael
date Sat, 07 Nov 2009 20:10:02 +0000
parents 36a16fb5c497
children c5c25c9b6644
comparison
equal deleted inserted replaced
10496:74b0c1a0851e 10497:8b4b365d08f5
38 static uint32_t exp_table[512]; 38 static uint32_t exp_table[512];
39 static uint32_t expval_table[512][16]; 39 static uint32_t expval_table[512][16];
40 40
41 static void mpegaudio_tableinit(void) 41 static void mpegaudio_tableinit(void)
42 { 42 {
43 int i; 43 int i, value, exponent;
44 for(i=1;i<TABLE_4_3_SIZE;i++) { 44 for(i=1;i<TABLE_4_3_SIZE;i++) {
45 double value = i/4; 45 double value = i/4;
46 double f, fm; 46 double f, fm;
47 int e, m; 47 int e, m;
48 f = value * cbrtf(value) * pow(2, (i&3)*0.25); 48 f = value * cbrtf(value) * pow(2, (i&3)*0.25);
52 52
53 /* normalized to FRAC_BITS */ 53 /* normalized to FRAC_BITS */
54 table_4_3_value[i] = m; 54 table_4_3_value[i] = m;
55 table_4_3_exp[i] = -e; 55 table_4_3_exp[i] = -e;
56 } 56 }
57 for(i=0; i<512*16; i++){ 57 for(exponent=0; exponent<512; exponent++) {
58 double value = i & 15; 58 for(value=0; value<16; value++) {
59 int exponent= (i>>4); 59 int i= value + 16*exponent;
60 double f= value * cbrtf(value) * pow(2, (exponent-400)*0.25 + FRAC_BITS + 5); 60 double f= (double)value * cbrtf(value) * pow(2, (exponent-400)*0.25 + FRAC_BITS + 5);
61 expval_table[exponent][i&15]= llrint(f); 61 expval_table[exponent][value]= llrint(f);
62 if((i&15)==1) 62 }
63 exp_table[exponent]= llrint(f); 63 exp_table[exponent]= expval_table[exponent][1];
64 } 64 }
65 } 65 }
66 #endif /* CONFIG_HARDCODED_TABLES */ 66 #endif /* CONFIG_HARDCODED_TABLES */
67 67
68 #endif /* MPEGAUDIO_TABLEGEN_H */ 68 #endif /* MPEGAUDIO_TABLEGEN_H */