[FFmpeg-devel] [PATCH v2] avcodec/fft_template: libavcodec/fft_template: improve performance of the ff_fft_init in fft_template
Paul B Mahol
onemda at gmail.com
Tue Dec 25 11:35:39 EET 2018
On 12/25/18, Liu Steven <lq at chinaffmpeg.org> wrote:
>
>
>> 在 2018年12月25日,上午1:28,Paul B Mahol <onemda at gmail.com> 写道:
>>
>> On 12/24/18, Michael Niedermayer <michael at niedermayer.cc> wrote:
>>> On Fri, Dec 21, 2018 at 06:09:50PM +0800, Steven Liu wrote:
>>>> Before patch:
>>>> init nbits = 17, get 10000 samples, average cost: 16105 us
>>>> After patch:
>>>> init nbits = 17, get 10000 samples, average cost: 15221 us
>>>>
>>>> Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
>>>> ---
>>>> libavcodec/fft_template.c | 26 +++++++++++++++-----------
>>>> 1 file changed, 15 insertions(+), 11 deletions(-)
>>>>
>>>> diff --git a/libavcodec/fft_template.c b/libavcodec/fft_template.c
>>>> index 762c014bc8..2b528be882 100644
>>>> --- a/libavcodec/fft_template.c
>>>> +++ b/libavcodec/fft_template.c
>>>> @@ -261,17 +261,21 @@ av_cold int ff_fft_init(FFTContext *s, int nbits,
>>>> int inverse)
>>>> if (s->fft_permutation == FF_FFT_PERM_AVX) {
>>>> fft_perm_avx(s);
>>>> } else {
>>>> - for(i=0; i<n; i++) {
>>>> - int k;
>>>> - j = i;
>>>> - if (s->fft_permutation == FF_FFT_PERM_SWAP_LSBS)
>>>> - j = (j&~3) | ((j>>1)&1) | ((j<<1)&2);
>>>> - k = -split_radix_permutation(i, n, s->inverse) & (n-1);
>>>> - if (s->revtab)
>>>> - s->revtab[k] = j;
>>>> - if (s->revtab32)
>>>> - s->revtab32[k] = j;
>>>> - }
>>>> +#define SPLIT_RADIX_PERMUTATION(num) do { \
>>>> + for(i=0; i<n; i++) {\
>>>> + int k;\
>>>> + j = i;\
>>>
>>>> + if (s->fft_permutation == FF_FFT_PERM_SWAP_LSBS)\
>>>
>>> maybe this if() should be factored out too ?
>>>
>>> the change looks good though, and iam not sure this is speed relevant
>>> enough
>>
>> Well, it helps. But this code is partially going to be rewritten
>> anyway in future.
>
> Hi Paul,
>
> So what i should do? Go on update this patch with Michael’s comment or
> waiting for your rewritten?
Update patch.
More information about the ffmpeg-devel
mailing list