Mercurial > libavcodec.hg
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 */ |