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 }