[x264-devel] [PATCH 1/9] arm: implement x264_predict_4x4_v_armv6

Janne Grunau janne-x264 at jannau.net
Sun Mar 16 23:26:38 CET 2014


Alone probably not worth it but allows use of predict_4x4_dc|h_armv6
in intra_sad|satd_x3_4x4_neon.
---
 common/arm/predict-a.S | 9 +++++++++
 common/arm/predict-c.c | 1 +
 common/arm/predict.h   | 3 +++
 common/pixel.c         | 4 ++--
 4 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/common/arm/predict-a.S b/common/arm/predict-a.S
index ed805b5..ca28ff8 100644
--- a/common/arm/predict-a.S
+++ b/common/arm/predict-a.S
@@ -79,6 +79,15 @@ function x264_predict_4x4_h_armv6
     bx      lr
 .endfunc
 
+function x264_predict_4x4_v_armv6
+    ldr     r1,  [r0, #0 - 1 * FDEC_STRIDE]
+    str     r1,  [r0, #0 + 0 * FDEC_STRIDE]
+    str     r1,  [r0, #0 + 1 * FDEC_STRIDE]
+    str     r1,  [r0, #0 + 2 * FDEC_STRIDE]
+    str     r1,  [r0, #0 + 3 * FDEC_STRIDE]
+    bx      lr
+.endfunc
+
 function x264_predict_4x4_dc_armv6
     mov     ip, #0
     ldr     r1, [r0, #-FDEC_STRIDE]
diff --git a/common/arm/predict-c.c b/common/arm/predict-c.c
index 204051b..b9ad262 100644
--- a/common/arm/predict-c.c
+++ b/common/arm/predict-c.c
@@ -64,6 +64,7 @@ void x264_predict_4x4_init_arm( int cpu, x264_predict_t pf[12] )
 
 #if !HIGH_BIT_DEPTH
     pf[I_PRED_4x4_H]   = x264_predict_4x4_h_armv6;
+    pf[I_PRED_4x4_V]   = x264_predict_4x4_v_armv6;
     pf[I_PRED_4x4_DC]  = x264_predict_4x4_dc_armv6;
     pf[I_PRED_4x4_DDR] = x264_predict_4x4_ddr_armv6;
 
diff --git a/common/arm/predict.h b/common/arm/predict.h
index 6cf2f5f..6c3df57 100644
--- a/common/arm/predict.h
+++ b/common/arm/predict.h
@@ -26,6 +26,9 @@
 #ifndef X264_ARM_PREDICT_H
 #define X264_ARM_PREDICT_H
 
+void x264_predict_4x4_h_armv6( pixel *src );
+void x264_predict_4x4_v_armv6( pixel *src );
+void x264_predict_4x4_dc_armv6( pixel *src );
 void x264_predict_8x8_v_neon( pixel *src, pixel edge[36] );
 void x264_predict_8x8_h_neon( pixel *src, pixel edge[36] );
 void x264_predict_8x8_dc_neon( pixel *src, pixel edge[36] );
diff --git a/common/pixel.c b/common/pixel.c
index b389792..f164733 100644
--- a/common/pixel.c
+++ b/common/pixel.c
@@ -593,8 +593,8 @@ INTRA_MBCMP(satd,  8x16, dc, h,  v, c, _xop, _mmx2 )
 #endif
 #endif
 #if !HIGH_BIT_DEPTH && HAVE_ARMV6
-INTRA_MBCMP( sad,  4x4,   v, h, dc,  , _neon, _c )
-INTRA_MBCMP(satd,  4x4,   v, h, dc,  , _neon, _c )
+INTRA_MBCMP( sad,  4x4,   v, h, dc,  , _neon, _armv6 )
+INTRA_MBCMP(satd,  4x4,   v, h, dc,  , _neon, _armv6 )
 INTRA_MBCMP( sad,  8x8,  dc, h,  v, c, _neon, _neon )
 INTRA_MBCMP(satd,  8x8,  dc, h,  v, c, _neon, _neon )
 INTRA_MBCMP( sad,  8x16, dc, h,  v, c, _neon, _c )
-- 
1.9.0



More information about the x264-devel mailing list