[FFmpeg-cvslog] r24702 - in trunk/libavcodec/x86: Makefile dsputil_mmx.c h264dsp_mmx.c
darkshikari
subversion
Thu Aug 5 02:13:38 CEST 2010
Author: darkshikari
Date: Thu Aug 5 02:13:38 2010
New Revision: 24702
Log:
H.264: SSE2/SSSE3 weighted prediction asm
Patch by Eli Friedman <eli.friedman at gmail dot com>
Modified:
trunk/libavcodec/x86/Makefile
trunk/libavcodec/x86/dsputil_mmx.c
trunk/libavcodec/x86/h264dsp_mmx.c
Modified: trunk/libavcodec/x86/Makefile
==============================================================================
--- trunk/libavcodec/x86/Makefile Thu Aug 5 01:04:05 2010 (r24701)
+++ trunk/libavcodec/x86/Makefile Thu Aug 5 02:13:38 2010 (r24702)
@@ -10,6 +10,7 @@ YASM-OBJS-$(CONFIG_GPL) +
YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_deblock_sse2.o \
x86/h264_intrapred.o \
+ x86/h264_weight_sse2.o \
YASM-OBJS-$(CONFIG_VC1_DECODER) += x86/vc1dsp_yasm.o
Modified: trunk/libavcodec/x86/dsputil_mmx.c
==============================================================================
--- trunk/libavcodec/x86/dsputil_mmx.c Thu Aug 5 01:04:05 2010 (r24701)
+++ trunk/libavcodec/x86/dsputil_mmx.c Thu Aug 5 02:13:38 2010 (r24702)
@@ -3000,6 +3000,8 @@ void ff_h264dsp_init_x86(H264DSPContext
c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_mmxext;
#endif
if( mm_flags&FF_MM_SSE2 ){
+ c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_sse2;
+ c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_sse2;
#if ARCH_X86_64 || !defined(__ICC) || __ICC > 1110
c->h264_v_loop_filter_luma = ff_x264_deblock_v_luma_sse2;
c->h264_h_loop_filter_luma = ff_x264_deblock_h_luma_sse2;
@@ -3012,6 +3014,10 @@ void ff_h264dsp_init_x86(H264DSPContext
c->h264_idct_add16intra = ff_h264_idct_add16intra_sse2;
#endif
}
+ if ( mm_flags&FF_MM_SSSE3 ){
+ c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_ssse3;
+ c->biweight_h264_pixels_tab[3]= ff_h264_biweight_8x8_ssse3;
+ }
}
#endif
}
Modified: trunk/libavcodec/x86/h264dsp_mmx.c
==============================================================================
--- trunk/libavcodec/x86/h264dsp_mmx.c Thu Aug 5 01:04:05 2010 (r24701)
+++ trunk/libavcodec/x86/h264dsp_mmx.c Thu Aug 5 02:13:38 2010 (r24702)
@@ -2323,6 +2323,22 @@ H264_WEIGHT( 4, 8)
H264_WEIGHT( 4, 4)
H264_WEIGHT( 4, 2)
+void ff_h264_biweight_8x8_sse2(uint8_t *dst, uint8_t *src, int stride,
+ int log2_denom, int weightd, int weights,
+ int offset);
+
+void ff_h264_biweight_16x16_sse2(uint8_t *dst, uint8_t *src, int stride,
+ int log2_denom, int weightd, int weights,
+ int offset);
+
+void ff_h264_biweight_8x8_ssse3(uint8_t *dst, uint8_t *src, int stride,
+ int log2_denom, int weightd, int weights,
+ int offset);
+
+void ff_h264_biweight_16x16_ssse3(uint8_t *dst, uint8_t *src, int stride,
+ int log2_denom, int weightd, int weights,
+ int offset);
+
void ff_pred16x16_vertical_mmx (uint8_t *src, int stride);
void ff_pred16x16_vertical_sse (uint8_t *src, int stride);
void ff_pred16x16_horizontal_mmx (uint8_t *src, int stride);
More information about the ffmpeg-cvslog
mailing list