diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2010-07-15 23:02:34 +0000 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2010-07-15 23:02:34 +0000 |
commit | a711eb48295dfa6c8556bbd7aa55e7cc4d0e19d6 (patch) | |
tree | 88f3630b06921a1d263d30ae2c07ef59be837379 /libavcodec/x86/vp8dsp-init.c | |
parent | 751484372d0dbf8428ba327ce5e515005d2e89b5 (diff) | |
download | ffmpeg-a711eb48295dfa6c8556bbd7aa55e7cc4d0e19d6.tar.gz |
VP8 H/V inner loopfilter MMX/MMXEXT/SSE2 optimizations.
Originally committed as revision 24250 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/x86/vp8dsp-init.c')
-rw-r--r-- | libavcodec/x86/vp8dsp-init.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libavcodec/x86/vp8dsp-init.c b/libavcodec/x86/vp8dsp-init.c index 9cd72b6955..edff2883f7 100644 --- a/libavcodec/x86/vp8dsp-init.c +++ b/libavcodec/x86/vp8dsp-init.c @@ -229,6 +229,19 @@ extern void ff_vp8_v_loop_filter_simple_sse2 (uint8_t *dst, int stride, int fli extern void ff_vp8_h_loop_filter_simple_mmx (uint8_t *dst, int stride, int flim); extern void ff_vp8_h_loop_filter_simple_mmxext(uint8_t *dst, int stride, int flim); extern void ff_vp8_h_loop_filter_simple_sse2 (uint8_t *dst, int stride, int flim); + +extern void ff_vp8_v_loop_filter16_inner_mmx (uint8_t *dst, int stride, + int e, int i, int hvt); +extern void ff_vp8_v_loop_filter16_inner_mmxext(uint8_t *dst, int stride, + int e, int i, int hvt); +extern void ff_vp8_v_loop_filter16_inner_sse2 (uint8_t *dst, int stride, + int e, int i, int hvt); +extern void ff_vp8_h_loop_filter16_inner_mmx (uint8_t *dst, int stride, + int e, int i, int hvt); +extern void ff_vp8_h_loop_filter16_inner_mmxext(uint8_t *dst, int stride, + int e, int i, int hvt); +extern void ff_vp8_h_loop_filter16_inner_sse2 (uint8_t *dst, int stride, + int e, int i, int hvt); #endif #define VP8_LUMA_MC_FUNC(IDX, SIZE, OPT) \ @@ -270,6 +283,9 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c) c->vp8_v_loop_filter_simple = ff_vp8_v_loop_filter_simple_mmx; c->vp8_h_loop_filter_simple = ff_vp8_h_loop_filter_simple_mmx; + + c->vp8_v_loop_filter16_inner = ff_vp8_v_loop_filter16_inner_mmx; + c->vp8_h_loop_filter16_inner = ff_vp8_h_loop_filter16_inner_mmx; } /* note that 4-tap width=16 functions are missing because w=16 @@ -285,6 +301,9 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c) c->vp8_v_loop_filter_simple = ff_vp8_v_loop_filter_simple_mmxext; c->vp8_h_loop_filter_simple = ff_vp8_h_loop_filter_simple_mmxext; + + c->vp8_v_loop_filter16_inner = ff_vp8_v_loop_filter16_inner_mmxext; + c->vp8_h_loop_filter16_inner = ff_vp8_h_loop_filter16_inner_mmxext; } if (mm_flags & FF_MM_SSE) { @@ -300,6 +319,9 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext* c) c->vp8_v_loop_filter_simple = ff_vp8_v_loop_filter_simple_sse2; c->vp8_h_loop_filter_simple = ff_vp8_h_loop_filter_simple_sse2; + + c->vp8_v_loop_filter16_inner = ff_vp8_v_loop_filter16_inner_sse2; + c->vp8_h_loop_filter16_inner = ff_vp8_h_loop_filter16_inner_sse2; } if (mm_flags & FF_MM_SSSE3) { |