diff options
author | Loren Merritt <lorenm@u.washington.edu> | 2008-04-01 04:51:28 +0000 |
---|---|---|
committer | Loren Merritt <lorenm@u.washington.edu> | 2008-04-01 04:51:28 +0000 |
commit | ce53144bac00bff5e7fd682c4d72daf80b21d6fb (patch) | |
tree | 9509b539307770ff2e77694d01863582a42ca0d8 /libavcodec/i386/h264dsp_mmx.c | |
parent | 4e0af031f1a5ef9230a62403b7e4c6cf61183d55 (diff) | |
download | ffmpeg-ce53144bac00bff5e7fd682c4d72daf80b21d6fb.tar.gz |
h264 chroma mc ssse3
width8: 180->92, width4: 78->63 cycles (core2)
Originally committed as revision 12661 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/i386/h264dsp_mmx.c')
-rw-r--r-- | libavcodec/i386/h264dsp_mmx.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libavcodec/i386/h264dsp_mmx.c b/libavcodec/i386/h264dsp_mmx.c index 7f5c5a95bb..536767dc67 100644 --- a/libavcodec/i386/h264dsp_mmx.c +++ b/libavcodec/i386/h264dsp_mmx.c @@ -1968,6 +1968,42 @@ static void avg_h264_chroma_mc8_3dnow_rnd(uint8_t *dst/*align 8*/, uint8_t *src/ #undef H264_CHROMA_MC4_TMPL #undef H264_CHROMA_MC8_MV0 +#ifdef HAVE_SSSE3 +#define AVG_OP(X) +#undef H264_CHROMA_MC8_TMPL +#undef H264_CHROMA_MC4_TMPL +#define H264_CHROMA_MC8_TMPL put_h264_chroma_mc8_ssse3 +#define H264_CHROMA_MC4_TMPL put_h264_chroma_mc4_ssse3 +#define H264_CHROMA_MC8_MV0 put_pixels8_mmx +#include "dsputil_h264_template_ssse3.c" +static void put_h264_chroma_mc8_ssse3_rnd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y) +{ + put_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 1); +} +static void put_h264_chroma_mc8_ssse3_nornd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y) +{ + put_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 0); +} + +#undef AVG_OP +#undef H264_CHROMA_MC8_TMPL +#undef H264_CHROMA_MC4_TMPL +#undef H264_CHROMA_MC8_MV0 +#define AVG_OP(X) X +#define H264_CHROMA_MC8_TMPL avg_h264_chroma_mc8_ssse3 +#define H264_CHROMA_MC4_TMPL avg_h264_chroma_mc4_ssse3 +#define H264_CHROMA_MC8_MV0 avg_pixels8_mmx2 +#include "dsputil_h264_template_ssse3.c" +static void avg_h264_chroma_mc8_ssse3_rnd(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int x, int y) +{ + avg_h264_chroma_mc8_ssse3(dst, src, stride, h, x, y, 1); +} +#undef AVG_OP +#undef H264_CHROMA_MC8_TMPL +#undef H264_CHROMA_MC4_TMPL +#undef H264_CHROMA_MC8_MV0 +#endif + /***********************************/ /* weighted prediction */ |