Mercurial > libavcodec.hg
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); |