[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