Skip to content

Commit

Permalink
Audio: DRC: Change DRC to use lookup table based sine function
Browse files Browse the repository at this point in the history
This change saves in TGL platform about 13 MPCS, from 83
to 70 MCPS. In MTL platform the saving is 12 MCPS, from 46
to 34 MCPS. The .bss RAM usage increases by 1 kB from
selecting CONFIG_MATH_LUT_SINE_FIXED.

Signed-off-by: Seppo Ingalsuo <[email protected]>
  • Loading branch information
singalsu authored and lgirdwood committed Jan 11, 2024
1 parent 3a1cded commit 8d2fb32
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/audio/drc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
config COMP_DRC
bool "Dynamic Range Compressor component"
select CORDIC_FIXED
select MATH_LUT_SINE_FIXED
select NUMBERS_NORM
select MATH_EXP
select COMP_BLOB
Expand Down
7 changes: 3 additions & 4 deletions src/audio/drc/drc_math.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <stdint.h>
#include <sof/audio/format.h>
#include <sof/math/numbers.h>
#include <sof/math/lut_trig.h>
#include <sof/math/trig.h>

#include "drc_plat_conf.h"
Expand Down Expand Up @@ -60,9 +61,8 @@ static inline int32_t drc_sin_fixed(int32_t x)
{
const int32_t lshift = drc_get_lshift(30, 30, 28);
int32_t denorm_x = drc_mult_lshift(x, PI_OVER_TWO_Q30, lshift);
int32_t sin_val = sin_fixed_16b(denorm_x);

return sin_val << 16;
return sofm_lut_sin_fixed_16b(denorm_x) << 16;
}

#ifdef DRC_USE_CORDIC_ASIN
Expand All @@ -88,9 +88,8 @@ static inline int32_t drc_asin_fixed(int32_t x)
static inline int32_t drc_sin_fixed(int32_t x)
{
const int32_t PI_OVER_TWO = Q_CONVERT_FLOAT(1.57079632679489661923, 30);
int32_t sin_val = sin_fixed_16b(Q_MULTSR_32X32((int64_t)x, PI_OVER_TWO, 30, 30, 28));

return sin_val << 16;
return sofm_lut_sin_fixed_16b(Q_MULTSR_32X32((int64_t)x, PI_OVER_TWO, 30, 30, 28)) << 16;
}

#ifdef DRC_USE_CORDIC_ASIN
Expand Down

0 comments on commit 8d2fb32

Please sign in to comment.