diff mbox

[FFmpeg-devel] avfilter/af_firequalizer: add av_restrict on convolution func

Message ID 20170311005652.10041-1-mfcc64@gmail.com
State Accepted
Commit 0bab78f7e729a76ea7a8cbec7f1de033c52494e8
Headers show

Commit Message

Muhammad Faiz March 11, 2017, 12:56 a.m. UTC
slightly improved speed

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
---
 libavfilter/af_firequalizer.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

wm4 March 11, 2017, 1:05 p.m. UTC | #1
On Sat, 11 Mar 2017 07:56:52 +0700
Muhammad Faiz <mfcc64@gmail.com> wrote:

> slightly improved speed
> 
> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
> ---
>  libavfilter/af_firequalizer.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/libavfilter/af_firequalizer.c b/libavfilter/af_firequalizer.c
> index 5c6fd54..4243d66 100644
> --- a/libavfilter/af_firequalizer.c
> +++ b/libavfilter/af_firequalizer.c
> @@ -197,8 +197,8 @@ static int query_formats(AVFilterContext *ctx)
>      return ff_set_common_samplerates(ctx, formats);
>  }
>  
> -static void fast_convolute(FIREqualizerContext *s, const float *kernel_buf, float *conv_buf,
> -                           OverlapIndex *idx, float *data, int nsamples)
> +static void fast_convolute(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, float *av_restrict conv_buf,
> +                           OverlapIndex *av_restrict idx, float *av_restrict data, int nsamples)
>  {
>      if (nsamples <= s->nsamples_max) {
>          float *buf = conv_buf + idx->buf_idx * s->rdft_len;
> @@ -235,8 +235,8 @@ static void fast_convolute(FIREqualizerContext *s, const float *kernel_buf, floa
>      }
>  }
>  
> -static void fast_convolute2(FIREqualizerContext *s, const float *kernel_buf, FFTComplex *conv_buf,
> -                            OverlapIndex *idx, float *data0, float *data1, int nsamples)
> +static void fast_convolute2(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, FFTComplex *av_restrict conv_buf,
> +                            OverlapIndex *av_restrict idx, float *av_restrict data0, float *av_restrict data1, int nsamples)
>  {
>      if (nsamples <= s->nsamples_max) {
>          FFTComplex *buf = conv_buf + idx->buf_idx * s->rdft_len;

Seems ok. How much improved?
Muhammad Faiz March 11, 2017, 8:34 p.m. UTC | #2
On Sat, Mar 11, 2017 at 8:05 PM, wm4 <nfxjfg@googlemail.com> wrote:
> On Sat, 11 Mar 2017 07:56:52 +0700
> Muhammad Faiz <mfcc64@gmail.com> wrote:
>
>> slightly improved speed
>>
>> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
>> ---
>>  libavfilter/af_firequalizer.c | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/libavfilter/af_firequalizer.c b/libavfilter/af_firequalizer.c
>> index 5c6fd54..4243d66 100644
>> --- a/libavfilter/af_firequalizer.c
>> +++ b/libavfilter/af_firequalizer.c
>> @@ -197,8 +197,8 @@ static int query_formats(AVFilterContext *ctx)
>>      return ff_set_common_samplerates(ctx, formats);
>>  }
>>
>> -static void fast_convolute(FIREqualizerContext *s, const float *kernel_buf, float *conv_buf,
>> -                           OverlapIndex *idx, float *data, int nsamples)
>> +static void fast_convolute(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, float *av_restrict conv_buf,
>> +                           OverlapIndex *av_restrict idx, float *av_restrict data, int nsamples)
>>  {
>>      if (nsamples <= s->nsamples_max) {
>>          float *buf = conv_buf + idx->buf_idx * s->rdft_len;
>> @@ -235,8 +235,8 @@ static void fast_convolute(FIREqualizerContext *s, const float *kernel_buf, floa
>>      }
>>  }
>>
>> -static void fast_convolute2(FIREqualizerContext *s, const float *kernel_buf, FFTComplex *conv_buf,
>> -                            OverlapIndex *idx, float *data0, float *data1, int nsamples)
>> +static void fast_convolute2(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, FFTComplex *av_restrict conv_buf,
>> +                            OverlapIndex *av_restrict idx, float *av_restrict data0, float *av_restrict data1, int nsamples)
>>  {
>>      if (nsamples <= s->nsamples_max) {
>>          FFTComplex *buf = conv_buf + idx->buf_idx * s->rdft_len;
>
> Seems ok. How much improved?

fast_convolute():
old: 791277 decicycles in fast_convolute(),   65536 runs,      0 skips
new: 775519 decicycles in fast_convolute(),   65536 runs,      0 skips

fast_convolute2():
old: 532707 decicycles in fast_convolute2(),   65535 runs,      1 skips
new: 518874 decicycles in fast_convolute2(),   65536 runs,      0 skips

Applied.

Thank's
diff mbox

Patch

diff --git a/libavfilter/af_firequalizer.c b/libavfilter/af_firequalizer.c
index 5c6fd54..4243d66 100644
--- a/libavfilter/af_firequalizer.c
+++ b/libavfilter/af_firequalizer.c
@@ -197,8 +197,8 @@  static int query_formats(AVFilterContext *ctx)
     return ff_set_common_samplerates(ctx, formats);
 }
 
-static void fast_convolute(FIREqualizerContext *s, const float *kernel_buf, float *conv_buf,
-                           OverlapIndex *idx, float *data, int nsamples)
+static void fast_convolute(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, float *av_restrict conv_buf,
+                           OverlapIndex *av_restrict idx, float *av_restrict data, int nsamples)
 {
     if (nsamples <= s->nsamples_max) {
         float *buf = conv_buf + idx->buf_idx * s->rdft_len;
@@ -235,8 +235,8 @@  static void fast_convolute(FIREqualizerContext *s, const float *kernel_buf, floa
     }
 }
 
-static void fast_convolute2(FIREqualizerContext *s, const float *kernel_buf, FFTComplex *conv_buf,
-                            OverlapIndex *idx, float *data0, float *data1, int nsamples)
+static void fast_convolute2(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, FFTComplex *av_restrict conv_buf,
+                            OverlapIndex *av_restrict idx, float *av_restrict data0, float *av_restrict data1, int nsamples)
 {
     if (nsamples <= s->nsamples_max) {
         FFTComplex *buf = conv_buf + idx->buf_idx * s->rdft_len;