Mercurial > libavcodec.hg
comparison mpegaudiodec.c @ 3621:d4896ea0305b libavcodec
replace l3_unscale(1, exponents[pos]) by LUT
author | michael |
---|---|
date | Fri, 25 Aug 2006 10:00:30 +0000 |
parents | 5f738d186815 |
children | e88a3910f855 |
comparison
equal
deleted
inserted
replaced
3620:5f738d186815 | 3621:d4896ea0305b |
---|---|
171 static uint16_t band_index_long[9][23]; | 171 static uint16_t band_index_long[9][23]; |
172 /* XXX: free when all decoders are closed */ | 172 /* XXX: free when all decoders are closed */ |
173 #define TABLE_4_3_SIZE (8191 + 16)*4 | 173 #define TABLE_4_3_SIZE (8191 + 16)*4 |
174 static int8_t *table_4_3_exp; | 174 static int8_t *table_4_3_exp; |
175 static uint32_t *table_4_3_value; | 175 static uint32_t *table_4_3_value; |
176 static uint32_t exp_table[512]; | |
176 /* intensity stereo coef table */ | 177 /* intensity stereo coef table */ |
177 static int32_t is_table[2][16]; | 178 static int32_t is_table[2][16]; |
178 static int32_t is_table_lsf[2][2][16]; | 179 static int32_t is_table_lsf[2][2][16]; |
179 static int32_t csa_table[8][4]; | 180 static int32_t csa_table[8][4]; |
180 static float csa_table_float[8][4]; | 181 static float csa_table_float[8][4]; |
425 | 426 |
426 /* normalized to FRAC_BITS */ | 427 /* normalized to FRAC_BITS */ |
427 table_4_3_value[i] = m; | 428 table_4_3_value[i] = m; |
428 // av_log(NULL, AV_LOG_DEBUG, "%d %d %f\n", i, m, pow((double)i, 4.0 / 3.0)); | 429 // av_log(NULL, AV_LOG_DEBUG, "%d %d %f\n", i, m, pow((double)i, 4.0 / 3.0)); |
429 table_4_3_exp[i] = -e; | 430 table_4_3_exp[i] = -e; |
431 } | |
432 for(i=0; i<512; i++){ | |
433 int exponent= i-400; | |
434 double f= pow(1, 4.0 / 3.0) * pow(2, exponent*0.25 + FRAC_BITS + 5); | |
435 exp_table[i]= lrintf(f); | |
430 } | 436 } |
431 | 437 |
432 for(i=0;i<7;i++) { | 438 for(i=0;i<7;i++) { |
433 float f; | 439 float f; |
434 int v; | 440 int v; |
1758 g->sb_hybrid[s_index+3]= 0; | 1764 g->sb_hybrid[s_index+3]= 0; |
1759 while(code){ | 1765 while(code){ |
1760 const static int idxtab[16]={3,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0}; | 1766 const static int idxtab[16]={3,3,2,2,1,1,1,1,0,0,0,0,0,0,0,0}; |
1761 int pos= s_index+idxtab[code]; | 1767 int pos= s_index+idxtab[code]; |
1762 code ^= 8>>idxtab[code]; | 1768 code ^= 8>>idxtab[code]; |
1763 v = l3_unscale(1, exponents[pos]); | 1769 v = exp_table[ exponents[pos] + 400]; |
1764 if(get_bits1(&s->gb)) | 1770 if(get_bits1(&s->gb)) |
1765 v = -v; | 1771 v = -v; |
1766 g->sb_hybrid[pos] = v; | 1772 g->sb_hybrid[pos] = v; |
1767 } | 1773 } |
1768 s_index+=4; | 1774 s_index+=4; |