Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Buethe <jbuethe@amazon.de>2023-12-18 12:08:24 +0300
committerJean-Marc Valin <jmvalin@amazon.com>2023-12-20 07:01:35 +0300
commitcef5e5d5b0451212fe28aa6cc1f98bc129203008 (patch)
treeb042df8285f1948f1e78a5a8b6083f59588811b0
parentf417b46a03ac058af856faba5089f64228ce4648 (diff)
removed pow calls
-rw-r--r--dnn/nndsp.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/dnn/nndsp.c b/dnn/nndsp.c
index 6d987872..6a5fa44f 100644
--- a/dnn/nndsp.c
+++ b/dnn/nndsp.c
@@ -84,7 +84,6 @@ static void scale_kernel(
int in_channels,
int out_channels,
int kernel_size,
- float p,
float *gain
)
/* normalizes (p-norm) kernel over input channel and kernel dimension */
@@ -99,13 +98,13 @@ static void scale_kernel(
{
for (i_kernel = 0; i_kernel < kernel_size; i_kernel++)
{
- norm += pow(kernel[KERNEL_INDEX(i_out_channels, i_in_channels, i_kernel)], p);
+ norm += kernel[KERNEL_INDEX(i_out_channels, i_in_channels, i_kernel)] * kernel[KERNEL_INDEX(i_out_channels, i_in_channels, i_kernel)];
}
}
#ifdef DEBUG_NNDSP
- printf("kernel norm: %f, %f\n", norm, pow(norm, 1.f/p));
+ printf("kernel norm: %f, %f\n", norm, sqrt(norm));
#endif
- norm = 1. / (1e-6 + pow(norm, 1.f/p));
+ norm = 1.f / (1e-6f + sqrt(norm));
for (i_in_channels = 0; i_in_channels < in_channels; i_in_channels++)
{
for (i_kernel = 0; i_kernel < kernel_size; i_kernel++)
@@ -159,7 +158,6 @@ void adaconv_process_frame(
float kernel1[ADACONV_MAX_KERNEL_SIZE];
float channel_buffer0[ADACONV_MAX_OVERLAP_SIZE];
float channel_buffer1[ADACONV_MAX_FRAME_SIZE];
- float window_buffer[ADACONV_MAX_OVERLAP_SIZE];
float gain_buffer[ADACONV_MAX_OUTPUT_CHANNELS];
float *p_input;
int i_in_channels, i_out_channels, i_sample;
@@ -196,7 +194,7 @@ void adaconv_process_frame(
print_float_vector("adaconv_gain_raw", gain_buffer, out_channels);
#endif
transform_gains(gain_buffer, out_channels, filter_gain_a, filter_gain_b);
- scale_kernel(kernel_buffer, in_channels, out_channels, kernel_size, 2, gain_buffer);
+ scale_kernel(kernel_buffer, in_channels, out_channels, kernel_size, gain_buffer);
#ifdef DEBUG_NNDSP
print_float_vector("adaconv_kernel", kernel_buffer, in_channels * out_channels * kernel_size);
@@ -267,7 +265,6 @@ void adacomb_process_frame(
float output_buffer_last[ADACOMB_MAX_FRAME_SIZE];
float kernel_buffer[ADACOMB_MAX_KERNEL_SIZE];
float input_buffer[ADACOMB_MAX_FRAME_SIZE + ADACOMB_MAX_LAG + ADACOMB_MAX_KERNEL_SIZE];
- float window_buffer[ADACOMB_MAX_OVERLAP_SIZE];
float gain, global_gain;
float *p_input;
int i_sample;
@@ -296,7 +293,7 @@ void adacomb_process_frame(
#endif
gain = exp(log_gain_limit - gain);
global_gain = exp(filter_gain_a * global_gain + filter_gain_b);
- scale_kernel(kernel_buffer, 1, 1, kernel_size, 2, &gain);
+ scale_kernel(kernel_buffer, 1, 1, kernel_size, &gain);
#ifdef DEBUG_NNDSP
print_float_vector("adacomb_kernel", kernel_buffer, kernel_size);