comparison x86/vp8dsp-init.c @ 12006:d584c7373a64 libavcodec

Add mmxext version of VP8 DC Hadamard transform
author darkshikari
date Tue, 29 Jun 2010 01:41:59 +0000
parents c15e87b9767b
children 2ae70e2c31a4
comparison
equal deleted inserted replaced
12005:88563eada57f 12006:d584c7373a64
193 HVBILIN(ssse3, 8, 8, 16) 193 HVBILIN(ssse3, 8, 8, 16)
194 HVBILIN(ssse3, 8, 16, 16) 194 HVBILIN(ssse3, 8, 16, 16)
195 195
196 extern void ff_vp8_idct_dc_add_mmx(uint8_t *dst, DCTELEM block[16], int stride); 196 extern void ff_vp8_idct_dc_add_mmx(uint8_t *dst, DCTELEM block[16], int stride);
197 extern void ff_vp8_idct_dc_add_sse4(uint8_t *dst, DCTELEM block[16], int stride); 197 extern void ff_vp8_idct_dc_add_sse4(uint8_t *dst, DCTELEM block[16], int stride);
198 extern void ff_vp8_luma_dc_wht_mmxext(DCTELEM block[4][4][16], DCTELEM dc[16]);
198 #endif 199 #endif
199 200
200 #define VP8_LUMA_MC_FUNC(IDX, SIZE, OPT) \ 201 #define VP8_LUMA_MC_FUNC(IDX, SIZE, OPT) \
201 c->put_vp8_epel_pixels_tab[IDX][0][2] = ff_put_vp8_epel ## SIZE ## _h6_ ## OPT; \ 202 c->put_vp8_epel_pixels_tab[IDX][0][2] = ff_put_vp8_epel ## SIZE ## _h6_ ## OPT; \
202 c->put_vp8_epel_pixels_tab[IDX][2][0] = ff_put_vp8_epel ## SIZE ## _v6_ ## OPT; \ 203 c->put_vp8_epel_pixels_tab[IDX][2][0] = ff_put_vp8_epel ## SIZE ## _v6_ ## OPT; \
235 } 236 }
236 237
237 /* note that 4-tap width=16 functions are missing because w=16 238 /* note that 4-tap width=16 functions are missing because w=16
238 * is only used for luma, and luma is always a copy or sixtap. */ 239 * is only used for luma, and luma is always a copy or sixtap. */
239 if (mm_flags & FF_MM_MMX2) { 240 if (mm_flags & FF_MM_MMX2) {
241 c->vp8_luma_dc_wht = ff_vp8_luma_dc_wht_mmxext;
240 VP8_LUMA_MC_FUNC(0, 16, mmxext); 242 VP8_LUMA_MC_FUNC(0, 16, mmxext);
241 VP8_MC_FUNC(1, 8, mmxext); 243 VP8_MC_FUNC(1, 8, mmxext);
242 VP8_MC_FUNC(1, 4, mmxext); 244 VP8_MC_FUNC(1, 4, mmxext);
243 VP8_BILINEAR_MC_FUNC(0, 16, mmxext); 245 VP8_BILINEAR_MC_FUNC(0, 16, mmxext);
244 VP8_BILINEAR_MC_FUNC(1, 8, mmxext); 246 VP8_BILINEAR_MC_FUNC(1, 8, mmxext);