Mercurial > libavcodec.hg
comparison arm/dsputil_neon.c @ 10221:2791393081ff libavcodec
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
author | mru |
---|---|
date | Tue, 22 Sep 2009 00:48:48 +0000 |
parents | 1e651d94b35f |
children | b783894a1c62 |
comparison
equal
deleted
inserted
replaced
10220:76132409af55 | 10221:2791393081ff |
---|---|
155 | 155 |
156 void ff_vector_fmul_neon(float *dst, const float *src, int len); | 156 void ff_vector_fmul_neon(float *dst, const float *src, int len); |
157 void ff_vector_fmul_window_neon(float *dst, const float *src0, | 157 void ff_vector_fmul_window_neon(float *dst, const float *src0, |
158 const float *src1, const float *win, | 158 const float *src1, const float *win, |
159 float add_bias, int len); | 159 float add_bias, int len); |
160 void ff_vector_fmul_scalar_neon(float *dst, const float *src, float mul, | |
161 int len); | |
162 void ff_vector_fmul_sv_scalar_2_neon(float *dst, const float *src, | |
163 const float **vp, float mul, int len); | |
164 void ff_vector_fmul_sv_scalar_4_neon(float *dst, const float *src, | |
165 const float **vp, float mul, int len); | |
166 void ff_sv_fmul_scalar_2_neon(float *dst, const float **vp, float mul, | |
167 int len); | |
168 void ff_sv_fmul_scalar_4_neon(float *dst, const float **vp, float mul, | |
169 int len); | |
170 void ff_butterflies_float_neon(float *v1, float *v2, int len); | |
160 | 171 |
161 void ff_float_to_int16_neon(int16_t *, const float *, long); | 172 void ff_float_to_int16_neon(int16_t *, const float *, long); |
162 void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int); | 173 void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int); |
163 | 174 |
164 void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, int blocksize); | 175 void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, int blocksize); |
267 c->vp3_h_loop_filter = ff_vp3_h_loop_filter_neon; | 278 c->vp3_h_loop_filter = ff_vp3_h_loop_filter_neon; |
268 } | 279 } |
269 | 280 |
270 c->vector_fmul = ff_vector_fmul_neon; | 281 c->vector_fmul = ff_vector_fmul_neon; |
271 c->vector_fmul_window = ff_vector_fmul_window_neon; | 282 c->vector_fmul_window = ff_vector_fmul_window_neon; |
283 c->vector_fmul_scalar = ff_vector_fmul_scalar_neon; | |
284 c->butterflies_float = ff_butterflies_float_neon; | |
285 | |
286 c->vector_fmul_sv_scalar[0] = ff_vector_fmul_sv_scalar_2_neon; | |
287 c->vector_fmul_sv_scalar[1] = ff_vector_fmul_sv_scalar_4_neon; | |
288 | |
289 c->sv_fmul_scalar[0] = ff_sv_fmul_scalar_2_neon; | |
290 c->sv_fmul_scalar[1] = ff_sv_fmul_scalar_4_neon; | |
272 | 291 |
273 if (!(avctx->flags & CODEC_FLAG_BITEXACT)) { | 292 if (!(avctx->flags & CODEC_FLAG_BITEXACT)) { |
274 c->float_to_int16 = ff_float_to_int16_neon; | 293 c->float_to_int16 = ff_float_to_int16_neon; |
275 c->float_to_int16_interleave = ff_float_to_int16_interleave_neon; | 294 c->float_to_int16_interleave = ff_float_to_int16_interleave_neon; |
276 } | 295 } |