[FFmpeg-devel] [PATCH] avfilter/af_dynaudnorm: remove wasteful pow

Ganesh Ajjanagadde gajjanagadde at gmail.com
Wed Nov 25 05:39:38 CET 2015


This removes wasteful pow(x, 2.0) that although not terribly important
for speed, is still useless.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
------------------------------------------------------------------------------
Observed while auditing the codebase for wasteful pow calls.

---
 libavfilter/af_dynaudnorm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c
index 62a2653..5f412f5 100644
--- a/libavfilter/af_dynaudnorm.c
+++ b/libavfilter/af_dynaudnorm.c
@@ -237,13 +237,13 @@ static void init_gaussian_filter(DynamicAudioNormalizerContext *s)
     // Pre-compute constants
     const int offset = s->filter_size / 2;
     const double c1 = 1.0 / (sigma * sqrt(2.0 * M_PI));
-    const double c2 = 2.0 * pow(sigma, 2.0);
+    const double c2 = 2.0 * sigma * sigma;
 
     // Compute weights
     for (i = 0; i < s->filter_size; i++) {
         const int x = i - offset;
 
-        s->weights[i] = c1 * exp(-(pow(x, 2.0) / c2));
+        s->weights[i] = c1 * exp(-x * x / c2);
         total_weight += s->weights[i];
     }
 
-- 
2.6.2



More information about the ffmpeg-devel mailing list