Mercurial > libavcodec.hg
comparison aacsbr.c @ 12156:b1c9654b8d68 libavcodec
aacsbr: Eliminate double precision arithmetic.
author | alexc |
---|---|
date | Tue, 13 Jul 2010 00:49:30 +0000 |
parents | 8c657be75c11 |
children |
comparison
equal
deleted
inserted
replaced
12155:7f8b11d9c831 | 12156:b1c9654b8d68 |
---|---|
1578 for (m = sbr->f_tablelim[k] - sbr->kx[1]; m < sbr->f_tablelim[k + 1] - sbr->kx[1]; m++) { | 1578 for (m = sbr->f_tablelim[k] - sbr->kx[1]; m < sbr->f_tablelim[k + 1] - sbr->kx[1]; m++) { |
1579 sum[0] += sbr->e_origmapped[e][m]; | 1579 sum[0] += sbr->e_origmapped[e][m]; |
1580 sum[1] += sbr->e_curr[e][m]; | 1580 sum[1] += sbr->e_curr[e][m]; |
1581 } | 1581 } |
1582 gain_max = limgain[sbr->bs_limiter_gains] * sqrtf((FLT_EPSILON + sum[0]) / (FLT_EPSILON + sum[1])); | 1582 gain_max = limgain[sbr->bs_limiter_gains] * sqrtf((FLT_EPSILON + sum[0]) / (FLT_EPSILON + sum[1])); |
1583 gain_max = FFMIN(100000, gain_max); | 1583 gain_max = FFMIN(100000.f, gain_max); |
1584 for (m = sbr->f_tablelim[k] - sbr->kx[1]; m < sbr->f_tablelim[k + 1] - sbr->kx[1]; m++) { | 1584 for (m = sbr->f_tablelim[k] - sbr->kx[1]; m < sbr->f_tablelim[k + 1] - sbr->kx[1]; m++) { |
1585 float q_m_max = sbr->q_m[e][m] * gain_max / sbr->gain[e][m]; | 1585 float q_m_max = sbr->q_m[e][m] * gain_max / sbr->gain[e][m]; |
1586 sbr->q_m[e][m] = FFMIN(sbr->q_m[e][m], q_m_max); | 1586 sbr->q_m[e][m] = FFMIN(sbr->q_m[e][m], q_m_max); |
1587 sbr->gain[e][m] = FFMIN(sbr->gain[e][m], gain_max); | 1587 sbr->gain[e][m] = FFMIN(sbr->gain[e][m], gain_max); |
1588 } | 1588 } |
1592 sum[1] += sbr->e_curr[e][m] * sbr->gain[e][m] * sbr->gain[e][m] | 1592 sum[1] += sbr->e_curr[e][m] * sbr->gain[e][m] * sbr->gain[e][m] |
1593 + sbr->s_m[e][m] * sbr->s_m[e][m] | 1593 + sbr->s_m[e][m] * sbr->s_m[e][m] |
1594 + (delta && !sbr->s_m[e][m]) * sbr->q_m[e][m] * sbr->q_m[e][m]; | 1594 + (delta && !sbr->s_m[e][m]) * sbr->q_m[e][m] * sbr->q_m[e][m]; |
1595 } | 1595 } |
1596 gain_boost = sqrtf((FLT_EPSILON + sum[0]) / (FLT_EPSILON + sum[1])); | 1596 gain_boost = sqrtf((FLT_EPSILON + sum[0]) / (FLT_EPSILON + sum[1])); |
1597 gain_boost = FFMIN(1.584893192, gain_boost); | 1597 gain_boost = FFMIN(1.584893192f, gain_boost); |
1598 for (m = sbr->f_tablelim[k] - sbr->kx[1]; m < sbr->f_tablelim[k + 1] - sbr->kx[1]; m++) { | 1598 for (m = sbr->f_tablelim[k] - sbr->kx[1]; m < sbr->f_tablelim[k + 1] - sbr->kx[1]; m++) { |
1599 sbr->gain[e][m] *= gain_boost; | 1599 sbr->gain[e][m] *= gain_boost; |
1600 sbr->q_m[e][m] *= gain_boost; | 1600 sbr->q_m[e][m] *= gain_boost; |
1601 sbr->s_m[e][m] *= gain_boost; | 1601 sbr->s_m[e][m] *= gain_boost; |
1602 } | 1602 } |