33 void ff_int32_to_float_fmul_scalar_sse (
float *
dst,
const int *
src,
float mul,
int len);
34 void ff_int32_to_float_fmul_scalar_sse2(
float *
dst,
const int *
src,
float mul,
int len);
36 void ff_float_to_int16_3dnow(int16_t *
dst,
const float *
src,
long len);
37 void ff_float_to_int16_sse (int16_t *
dst,
const float *
src,
long len);
38 void ff_float_to_int16_sse2 (int16_t *
dst,
const float *
src,
long len);
40 void ff_float_to_int16_step_3dnow(int16_t *
dst,
const float *
src,
long len,
long step);
41 void ff_float_to_int16_step_sse (int16_t *
dst,
const float *
src,
long len,
long step);
42 void ff_float_to_int16_step_sse2 (int16_t *
dst,
const float *
src,
long len,
long step);
44 void ff_float_to_int16_interleave2_3dnow(int16_t *
dst,
const float **
src,
long len);
45 void ff_float_to_int16_interleave2_sse (int16_t *
dst,
const float **
src,
long len);
46 void ff_float_to_int16_interleave2_sse2 (int16_t *
dst,
const float **
src,
long len);
48 void ff_float_to_int16_interleave6_sse(int16_t *
dst,
const float **
src,
int len);
49 void ff_float_to_int16_interleave6_3dnow(int16_t *
dst,
const float **
src,
int len);
50 void ff_float_to_int16_interleave6_3dnowext(int16_t *
dst,
const float **
src,
int len);
52 #define ff_float_to_int16_interleave6_sse2 ff_float_to_int16_interleave6_sse 54 #define FLOAT_TO_INT16_INTERLEAVE(cpu) \ 56 static av_noinline void float_to_int16_interleave_misc_##cpu(int16_t *dst, const float **src, long len, int channels){\ 58 for(c=0; c<channels; c++){\ 59 ff_float_to_int16_step_##cpu(dst+c, src[c], len, channels);\ 63 static void float_to_int16_interleave_##cpu(int16_t *dst, const float **src, long len, int channels){\ 65 ff_float_to_int16_##cpu(dst, src[0], len);\ 66 else if(channels==2){\ 67 ff_float_to_int16_interleave2_##cpu(dst, src, len);\ 68 }else if(channels==6){\ 69 ff_float_to_int16_interleave6_##cpu(dst, src, len);\ 71 float_to_int16_interleave_misc_##cpu(dst, src, len, channels);\ 74 FLOAT_TO_INT16_INTERLEAVE(3dnow)
75 FLOAT_TO_INT16_INTERLEAVE(
sse)
76 FLOAT_TO_INT16_INTERLEAVE(sse2)
78 static
void float_to_int16_interleave_3dnowext(int16_t *
dst, const
float **
src,
79 long len,
int channels)
82 ff_float_to_int16_interleave6_3dnowext(dst, src, len);
84 float_to_int16_interleave_3dnow(dst, src, len, channels);
87 void ff_float_interleave2_mmx(
float *dst,
const float **src,
unsigned int len);
88 void ff_float_interleave2_sse(
float *dst,
const float **src,
unsigned int len);
90 void ff_float_interleave6_mmx(
float *dst,
const float **src,
unsigned int len);
91 void ff_float_interleave6_sse(
float *dst,
const float **src,
unsigned int len);
93 static void float_interleave_mmx(
float *dst,
const float **src,
94 unsigned int len,
int channels)
97 ff_float_interleave2_mmx(dst, src, len);
98 }
else if (channels == 6)
99 ff_float_interleave6_mmx(dst, src, len);
104 static void float_interleave_sse(
float *dst,
const float **src,
105 unsigned int len,
int channels)
108 ff_float_interleave2_sse(dst, src, len);
109 }
else if (channels == 6)
110 ff_float_interleave6_sse(dst, src, len);
#define EXTERNAL_MMX(flags)
av_cold void ff_fmt_convert_init_x86(FmtConvertContext *c, AVCodecContext *avctx)
void(* int32_to_float_fmul_scalar)(float *dst, const int *src, float mul, int len)
Convert an array of int32_t to float and multiply by a float value.
void(* float_interleave)(float *dst, const float **src, unsigned int len, int channels)
Convert multiple arrays of float to an array of interleaved float.
static int sse(MpegEncContext *s, uint8_t *src1, uint8_t *src2, int w, int h, int stride)
#define EXTERNAL_SSE(flags)
Macro definitions for various function/variable attributes.
void ff_float_interleave_c(float *dst, const float **src, unsigned int len, int channels)
#define CODEC_FLAG_BITEXACT
Use only bitexact stuff (except (I)DCT).
#define EXTERNAL_SSE2(flags)
void(* float_to_int16_interleave)(int16_t *dst, const float **src, long len, int channels)
Convert multiple arrays of float to an interleaved array of int16_t.
void(* float_to_int16)(int16_t *dst, const float *src, long len)
Convert an array of float to an array of int16_t.
#define EXTERNAL_AMD3DNOWEXT(flags)
main external API structure.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
else dst[i][x+y *dst_stride[i]]
#define EXTERNAL_AMD3DNOW(flags)
trying all byte sequences megabyte in length and selecting the best looking sequence will yield cases to try But a word about which is also called distortion Distortion can be quantified by almost any quality measurement one chooses the sum of squared differences is used but more complex methods that consider psychovisual effects can be used as well It makes no difference in this discussion First step