[x264-devel] MMX 10-bit predict_8x8c_h and predict_8x16c_h
Shitiz Garg
git at videolan.org
Mon Jan 16 02:11:56 CET 2012
x264 | branch: master | Shitiz Garg <mail at dragooon.net> | Sat Dec 3 15:34:57 2011 -0800| [6d921c5bdefae1a733a3a4c29d88ea15fcece76e] | committer: Jason Garrett-Glaser
MMX 10-bit predict_8x8c_h and predict_8x16c_h
>From Google Code-In.
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=6d921c5bdefae1a733a3a4c29d88ea15fcece76e
---
common/x86/predict-a.asm | 8 +++++++-
common/x86/predict-c.c | 2 ++
common/x86/predict.h | 4 ++--
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/common/x86/predict-a.asm b/common/x86/predict-a.asm
index 15959a5..f87191c 100644
--- a/common/x86/predict-a.asm
+++ b/common/x86/predict-a.asm
@@ -1663,7 +1663,6 @@ PREDICT_8x16C_V
;-----------------------------------------------------------------------------
%ifdef HIGH_BIT_DEPTH
-INIT_XMM sse2
%macro PREDICT_C_H 1
cglobal predict_8x%1c_h, 1,1
add r0, FDEC_STRIDEB*4
@@ -1672,11 +1671,18 @@ cglobal predict_8x%1c_h, 1,1
movd m0, [r0+FDEC_STRIDEB*Y-SIZEOF_PIXEL*2]
SPLATW m0, m0, 1
mova [r0+FDEC_STRIDEB*Y], m0
+%if mmsize == 8
+ mova [r0+FDEC_STRIDEB*Y+8], m0
+%endif
%assign Y Y+1
%endrep
RET
%endmacro
+INIT_MMX mmx2
+PREDICT_C_H 8
+PREDICT_C_H 16
+INIT_XMM sse2
PREDICT_C_H 8
PREDICT_C_H 16
diff --git a/common/x86/predict-c.c b/common/x86/predict-c.c
index c168deb..8385ff9 100644
--- a/common/x86/predict-c.c
+++ b/common/x86/predict-c.c
@@ -338,6 +338,7 @@ void x264_predict_8x8c_init_mmx( int cpu, x264_predict_t pf[7] )
if( !(cpu&X264_CPU_MMX2) )
return;
pf[I_PRED_CHROMA_DC] = x264_predict_8x8c_dc_mmx2;
+ pf[I_PRED_CHROMA_H] = x264_predict_8x8c_h_mmx2;
if( !(cpu&X264_CPU_SSE2) )
return;
pf[I_PRED_CHROMA_V] = x264_predict_8x8c_v_sse2;
@@ -386,6 +387,7 @@ void x264_predict_8x16c_init_mmx( int cpu, x264_predict_t pf[7] )
if( !(cpu&X264_CPU_MMX2) )
return;
pf[I_PRED_CHROMA_DC] = x264_predict_8x16c_dc_mmx2;
+ pf[I_PRED_CHROMA_H] = x264_predict_8x16c_h_mmx2;
if( !(cpu&X264_CPU_SSE2) )
return;
pf[I_PRED_CHROMA_V] = x264_predict_8x16c_v_sse2;
diff --git a/common/x86/predict.h b/common/x86/predict.h
index 708830c..5d87cae 100644
--- a/common/x86/predict.h
+++ b/common/x86/predict.h
@@ -56,7 +56,7 @@ void x264_predict_8x16c_dc_top_mmx2( uint8_t *src );
void x264_predict_8x16c_dc_top_sse2( uint16_t *src );
void x264_predict_8x16c_v_mmx( uint8_t *src );
void x264_predict_8x16c_v_sse2( uint16_t *src );
-void x264_predict_8x16c_h_mmx2( uint8_t *src );
+void x264_predict_8x16c_h_mmx2( pixel *src );
void x264_predict_8x16c_h_sse2( pixel *src );
void x264_predict_8x16c_h_ssse3( uint8_t *src );
void x264_predict_8x8c_p_core_mmx2( uint8_t *src, int i00, int b, int c );
@@ -68,7 +68,7 @@ void x264_predict_8x8c_dc_top_mmx2( uint8_t *src );
void x264_predict_8x8c_dc_top_sse2( uint16_t *src );
void x264_predict_8x8c_v_mmx( pixel *src );
void x264_predict_8x8c_v_sse2( uint16_t *src );
-void x264_predict_8x8c_h_mmx2( uint8_t *src );
+void x264_predict_8x8c_h_mmx2( pixel *src );
void x264_predict_8x8c_h_sse2( pixel *src );
void x264_predict_8x8c_h_ssse3( uint8_t *src );
void x264_predict_8x8_v_mmx2( uint8_t *src, uint8_t edge[36] );
More information about the x264-devel
mailing list