diff options
author | Måns Rullgård <mans@mansr.com> | 2009-09-22 00:48:48 +0000 |
---|---|---|
committer | Måns Rullgård <mans@mansr.com> | 2009-09-22 00:48:48 +0000 |
commit | 1dee3e97c6971ac78404e5dd43b28c8fb7edbb39 (patch) | |
tree | 27722e6d0d5366f7d78124a2dca1f98b37672541 /libavcodec/arm/dsputil_neon.c | |
parent | 42d3fbb3f454cbc45a15213b0728cd49c189b59a (diff) | |
download | ffmpeg-1dee3e97c6971ac78404e5dd43b28c8fb7edbb39.tar.gz |
ARM: NEON optimisations for some dsputil functions
NEON versions of the following functions are added:
vector_fmul_scalar
vector_fmul_sv_scalar
sv_fmul_scalar
butterflies_float
Originally committed as revision 19957 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/arm/dsputil_neon.c')
-rw-r--r-- | libavcodec/arm/dsputil_neon.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/libavcodec/arm/dsputil_neon.c b/libavcodec/arm/dsputil_neon.c index 67315297df..03e17466b6 100644 --- a/libavcodec/arm/dsputil_neon.c +++ b/libavcodec/arm/dsputil_neon.c @@ -157,6 +157,17 @@ void ff_vector_fmul_neon(float *dst, const float *src, int len); void ff_vector_fmul_window_neon(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len); +void ff_vector_fmul_scalar_neon(float *dst, const float *src, float mul, + int len); +void ff_vector_fmul_sv_scalar_2_neon(float *dst, const float *src, + const float **vp, float mul, int len); +void ff_vector_fmul_sv_scalar_4_neon(float *dst, const float *src, + const float **vp, float mul, int len); +void ff_sv_fmul_scalar_2_neon(float *dst, const float **vp, float mul, + int len); +void ff_sv_fmul_scalar_4_neon(float *dst, const float **vp, float mul, + int len); +void ff_butterflies_float_neon(float *v1, float *v2, int len); void ff_float_to_int16_neon(int16_t *, const float *, long); void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int); @@ -269,6 +280,14 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) c->vector_fmul = ff_vector_fmul_neon; c->vector_fmul_window = ff_vector_fmul_window_neon; + c->vector_fmul_scalar = ff_vector_fmul_scalar_neon; + c->butterflies_float = ff_butterflies_float_neon; + + c->vector_fmul_sv_scalar[0] = ff_vector_fmul_sv_scalar_2_neon; + c->vector_fmul_sv_scalar[1] = ff_vector_fmul_sv_scalar_4_neon; + + c->sv_fmul_scalar[0] = ff_sv_fmul_scalar_2_neon; + c->sv_fmul_scalar[1] = ff_sv_fmul_scalar_4_neon; if (!(avctx->flags & CODEC_FLAG_BITEXACT)) { c->float_to_int16 = ff_float_to_int16_neon; |