59 #define mask16b mask15b
76 #define BY ((int)( 0.098*(1<<RGB2YUV_SHIFT)+0.5))
77 #define BV ((int)(-0.071*(1<<RGB2YUV_SHIFT)+0.5))
78 #define BU ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5))
79 #define GY ((int)( 0.504*(1<<RGB2YUV_SHIFT)+0.5))
80 #define GV ((int)(-0.368*(1<<RGB2YUV_SHIFT)+0.5))
81 #define GU ((int)(-0.291*(1<<RGB2YUV_SHIFT)+0.5))
82 #define RY ((int)( 0.257*(1<<RGB2YUV_SHIFT)+0.5))
83 #define RV ((int)( 0.439*(1<<RGB2YUV_SHIFT)+0.5))
84 #define RU ((int)(-0.148*(1<<RGB2YUV_SHIFT)+0.5))
88 #define COMPILE_TEMPLATE_SSE2 0
89 #define COMPILE_TEMPLATE_AVX 0
93 #define RENAME(a) a ## _mmxext
94 #include "rgb2rgb_template.c"
98 #undef COMPILE_TEMPLATE_SSE2
99 #define COMPILE_TEMPLATE_SSE2 1
100 #define RENAME(a) a ## _sse2
101 #include "rgb2rgb_template.c"
105 #undef COMPILE_TEMPLATE_AVX
106 #define COMPILE_TEMPLATE_AVX 1
107 #define RENAME(a) a ## _avx
108 #include "rgb2rgb_template.c"
127 void ff_shuffle_bytes_2103_avx2(
const uint8_t *
src, uint8_t *dst,
int src_size);
128 void ff_shuffle_bytes_0321_avx2(
const uint8_t *
src, uint8_t *dst,
int src_size);
129 void ff_shuffle_bytes_1230_avx2(
const uint8_t *
src, uint8_t *dst,
int src_size);
130 void ff_shuffle_bytes_3012_avx2(
const uint8_t *
src, uint8_t *dst,
int src_size);
131 void ff_shuffle_bytes_3210_avx2(
const uint8_t *
src, uint8_t *dst,
int src_size);
133 void ff_uyvytoyuv422_sse2(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
135 int lumStride,
int chromStride,
int srcStride);
136 void ff_uyvytoyuv422_avx(uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
138 int lumStride,
int chromStride,
int srcStride);
147 rgb2rgb_init_mmxext();