comparison x86/vp8dsp-init.c @ 12082:8527154f6e81 libavcodec

SSSE3 versions of vp8 width4 bilinear MC functions
author darkshikari
date Sat, 03 Jul 2010 00:48:12 +0000
parents b8f80fe02861
children d780ae746855
comparison
equal deleted inserted replaced
12081:812e23197d64 12082:8527154f6e81
83 uint8_t *src, int srcstride, 83 uint8_t *src, int srcstride,
84 int height, int mx, int my); 84 int height, int mx, int my);
85 extern void ff_put_vp8_bilinear8_h_sse2 (uint8_t *dst, int dststride, 85 extern void ff_put_vp8_bilinear8_h_sse2 (uint8_t *dst, int dststride,
86 uint8_t *src, int srcstride, 86 uint8_t *src, int srcstride,
87 int height, int mx, int my); 87 int height, int mx, int my);
88 extern void ff_put_vp8_bilinear4_h_ssse3 (uint8_t *dst, int dststride,
89 uint8_t *src, int srcstride,
90 int height, int mx, int my);
91 extern void ff_put_vp8_bilinear8_h_ssse3 (uint8_t *dst, int dststride,
92 uint8_t *src, int srcstride,
93 int height, int mx, int my);
88 94
89 extern void ff_put_vp8_bilinear4_v_mmxext(uint8_t *dst, int dststride, 95 extern void ff_put_vp8_bilinear4_v_mmxext(uint8_t *dst, int dststride,
90 uint8_t *src, int srcstride, 96 uint8_t *src, int srcstride,
91 int height, int mx, int my); 97 int height, int mx, int my);
92 extern void ff_put_vp8_bilinear8_v_sse2 (uint8_t *dst, int dststride, 98 extern void ff_put_vp8_bilinear8_v_sse2 (uint8_t *dst, int dststride,
93 uint8_t *src, int srcstride, 99 uint8_t *src, int srcstride,
94 int height, int mx, int my); 100 int height, int mx, int my);
101 extern void ff_put_vp8_bilinear4_v_ssse3 (uint8_t *dst, int dststride,
102 uint8_t *src, int srcstride,
103 int height, int mx, int my);
95 extern void ff_put_vp8_bilinear8_v_ssse3 (uint8_t *dst, int dststride, 104 extern void ff_put_vp8_bilinear8_v_ssse3 (uint8_t *dst, int dststride,
96 uint8_t *src, int srcstride, 105 uint8_t *src, int srcstride,
97 int height, int mx, int my); 106 int height, int mx, int my);
98 extern void ff_put_vp8_bilinear8_h_ssse3 (uint8_t *dst, int dststride, 107
99 uint8_t *src, int srcstride,
100 int height, int mx, int my);
101 108
102 extern void ff_put_vp8_pixels8_mmx (uint8_t *dst, int dststride, 109 extern void ff_put_vp8_pixels8_mmx (uint8_t *dst, int dststride,
103 uint8_t *src, int srcstride, 110 uint8_t *src, int srcstride,
104 int height, int mx, int my); 111 int height, int mx, int my);
105 extern void ff_put_vp8_pixels16_mmx(uint8_t *dst, int dststride, 112 extern void ff_put_vp8_pixels16_mmx(uint8_t *dst, int dststride,
205 HVBILIN(mmxext, 8, 4, 8) 212 HVBILIN(mmxext, 8, 4, 8)
206 HVBILIN(mmxext, 8, 8, 16) 213 HVBILIN(mmxext, 8, 8, 16)
207 HVBILIN(mmxext, 8, 16, 16) 214 HVBILIN(mmxext, 8, 16, 16)
208 HVBILIN(sse2, 8, 8, 16) 215 HVBILIN(sse2, 8, 8, 16)
209 HVBILIN(sse2, 8, 16, 16) 216 HVBILIN(sse2, 8, 16, 16)
217 HVBILIN(ssse3, 8, 4, 8)
210 HVBILIN(ssse3, 8, 8, 16) 218 HVBILIN(ssse3, 8, 8, 16)
211 HVBILIN(ssse3, 8, 16, 16) 219 HVBILIN(ssse3, 8, 16, 16)
212 220
213 extern void ff_vp8_idct_dc_add_mmx(uint8_t *dst, DCTELEM block[16], int stride); 221 extern void ff_vp8_idct_dc_add_mmx(uint8_t *dst, DCTELEM block[16], int stride);
214 extern void ff_vp8_idct_dc_add_sse4(uint8_t *dst, DCTELEM block[16], int stride); 222 extern void ff_vp8_idct_dc_add_sse4(uint8_t *dst, DCTELEM block[16], int stride);
282 VP8_LUMA_MC_FUNC(0, 16, ssse3); 290 VP8_LUMA_MC_FUNC(0, 16, ssse3);
283 VP8_MC_FUNC(1, 8, ssse3); 291 VP8_MC_FUNC(1, 8, ssse3);
284 VP8_MC_FUNC(2, 4, ssse3); 292 VP8_MC_FUNC(2, 4, ssse3);
285 VP8_BILINEAR_MC_FUNC(0, 16, ssse3); 293 VP8_BILINEAR_MC_FUNC(0, 16, ssse3);
286 VP8_BILINEAR_MC_FUNC(1, 8, ssse3); 294 VP8_BILINEAR_MC_FUNC(1, 8, ssse3);
295 VP8_BILINEAR_MC_FUNC(2, 4, ssse3);
287 } 296 }
288 297
289 if (mm_flags & FF_MM_SSE4) { 298 if (mm_flags & FF_MM_SSE4) {
290 c->vp8_idct_dc_add = ff_vp8_idct_dc_add_sse4; 299 c->vp8_idct_dc_add = ff_vp8_idct_dc_add_sse4;
291 } 300 }