comparison dsputil.h @ 10104:0fa3d21b317e libavcodec

SSE optimized vector_clipf(). 10% faster TwinVQ decoding.
author vitor
date Thu, 27 Aug 2009 14:49:36 +0000
parents 7a116de63777
children 7775f6627612
comparison
equal deleted inserted replaced
10103:2066cbe806ef 10104:0fa3d21b317e
394 void (*vector_fmul_add_add)(float *dst, const float *src0, const float *src1, const float *src2, int src3, int len, int step); 394 void (*vector_fmul_add_add)(float *dst, const float *src0, const float *src1, const float *src2, int src3, int len, int step);
395 /* assume len is a multiple of 4, and arrays are 16-byte aligned */ 395 /* assume len is a multiple of 4, and arrays are 16-byte aligned */
396 void (*vector_fmul_window)(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len); 396 void (*vector_fmul_window)(float *dst, const float *src0, const float *src1, const float *win, float add_bias, int len);
397 /* assume len is a multiple of 8, and arrays are 16-byte aligned */ 397 /* assume len is a multiple of 8, and arrays are 16-byte aligned */
398 void (*int32_to_float_fmul_scalar)(float *dst, const int *src, float mul, int len); 398 void (*int32_to_float_fmul_scalar)(float *dst, const int *src, float mul, int len);
399 void (*vector_clipf)(float *dst /* align 16 */, float *src /* align 16 */, float min, float max, int len /* align 16 */);
399 400
400 /* C version: convert floats from the range [384.0,386.0] to ints in [-32768,32767] 401 /* C version: convert floats from the range [384.0,386.0] to ints in [-32768,32767]
401 * simd versions: convert floats from [-32768.0,32767.0] without rescaling and arrays are 16byte aligned */ 402 * simd versions: convert floats from [-32768.0,32767.0] without rescaling and arrays are 16byte aligned */
402 void (*float_to_int16)(int16_t *dst, const float *src, long len); 403 void (*float_to_int16)(int16_t *dst, const float *src, long len);
403 void (*float_to_int16_interleave)(int16_t *dst, const float **src, long len, int channels); 404 void (*float_to_int16_interleave)(int16_t *dst, const float **src, long len, int channels);