aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJovan Zelincevic <jovan.zelincevic@imgtec.com>2016-03-29 09:43:35 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2016-03-29 17:06:16 +0200
commitb73c27151eda795932a0169274ed6c2c8bcde062 (patch)
treee6c6b688298acb11e7091aa637de14c5447d5121
parent7888ae8266d8f721cc443fe3aa627d350ca01204 (diff)
downloadffmpeg-b73c27151eda795932a0169274ed6c2c8bcde062.tar.gz
avcodec/mips: Optimization synced to the newest code base.
FFT expanded to 2^17. Signed-off-by: Jovan Zelincevic <jovan.zelincevic@imgtec.com> Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/mips/fft_mips.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/libavcodec/mips/fft_mips.c b/libavcodec/mips/fft_mips.c
index 529e0764e3..03dcbad4d8 100644
--- a/libavcodec/mips/fft_mips.c
+++ b/libavcodec/mips/fft_mips.c
@@ -72,7 +72,7 @@ static void ff_fft_calc_mips(FFTContext *s, FFTComplex *z)
FFTComplex * tmpz_n2, * tmpz_n34, * tmpz_n4;
FFTComplex * tmpz_n2_i, * tmpz_n34_i, * tmpz_n4_i, * tmpz_i;
- num_transforms = (0x2aab >> (16 - s->nbits)) | 1;
+ num_transforms = (21845 >> (17 - s->nbits)) | 1;
for (n=0; n<num_transforms; n++) {
offset = ff_fft_offsets_lut[n] << 2;
@@ -251,8 +251,8 @@ static void ff_fft_calc_mips(FFTContext *s, FFTComplex *z)
: "memory"
);
- w_re_ptr = (float*)(ff_cos_65536 + step);
- w_im_ptr = (float*)(ff_cos_65536 + MAX_FFT_SIZE/4 - step);
+ w_re_ptr = (float*)(ff_cos_131072 + step);
+ w_im_ptr = (float*)(ff_cos_131072 + MAX_FFT_SIZE/4 - step);
for (i=1; i<n4; i++) {
w_re = w_re_ptr[0];
@@ -502,11 +502,8 @@ av_cold void ff_fft_init_mips(FFTContext *s)
{
int n=0;
- if (s->nbits > 16)
- return;
-
ff_fft_lut_init(ff_fft_offsets_lut, 0, 1 << 17, &n);
- ff_init_ff_cos_tabs(16);
+ ff_init_ff_cos_tabs(17);
#if HAVE_INLINE_ASM
#if !HAVE_MIPS32R6 && !HAVE_MIPS64R6