summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vp8/common/generic/systemdependent.c1
-rw-r--r--vp8/common/onyxc_int.h1
-rw-r--r--vp8/common/recon.h5
-rw-r--r--vp8/common/reconinter.c3
-rw-r--r--vp8/common/rtcd_defs.sh11
-rw-r--r--vp8/common/x86/recon_x86.h3
-rw-r--r--vp8/common/x86/x86_systemdependent.c2
-rw-r--r--vp8/encoder/encodeframe.c16
-rw-r--r--vp8/encoder/firstpass.c2
-rw-r--r--vp8/encoder/temporal_filter.c2
10 files changed, 19 insertions, 27 deletions
diff --git a/vp8/common/generic/systemdependent.c b/vp8/common/generic/systemdependent.c
index 32b5e5a6c..3d315dafd 100644
--- a/vp8/common/generic/systemdependent.c
+++ b/vp8/common/generic/systemdependent.c
@@ -36,7 +36,6 @@ void vp8_machine_specific_config(VP8_COMMON *ctx) {
#if CONFIG_TX16X16 || CONFIG_HYBRIDTRANSFORM16X16
rtcd->idct.idct16x16 = vp8_short_idct16x16_c;
#endif
- rtcd->recon.copy16x16 = vp8_copy_mem16x16_c;
rtcd->recon.copy8x8 = vp8_copy_mem8x8_c;
rtcd->recon.avg16x16 = vp8_avg_mem16x16_c;
rtcd->recon.avg8x8 = vp8_avg_mem8x8_c;
diff --git a/vp8/common/onyxc_int.h b/vp8/common/onyxc_int.h
index 7c6093b41..a8cfdf8d2 100644
--- a/vp8/common/onyxc_int.h
+++ b/vp8/common/onyxc_int.h
@@ -14,6 +14,7 @@
#include "vpx_config.h"
#include "vpx/internal/vpx_codec_internal.h"
+#include "vpx_rtcd.h"
#include "loopfilter.h"
#include "entropymv.h"
#include "entropy.h"
diff --git a/vp8/common/recon.h b/vp8/common/recon.h
index 0bb5c8863..54d133b85 100644
--- a/vp8/common/recon.h
+++ b/vp8/common/recon.h
@@ -44,11 +44,6 @@ struct vp8_recon_rtcd_vtable;
#include "arm/recon_arm.h"
#endif
-#ifndef vp8_recon_copy16x16
-#define vp8_recon_copy16x16 vp8_copy_mem16x16_c
-#endif
-extern prototype_copy_block(vp8_recon_copy16x16);
-
#ifndef vp8_recon_copy8x8
#define vp8_recon_copy8x8 vp8_copy_mem8x8_c
#endif
diff --git a/vp8/common/reconinter.c b/vp8/common/reconinter.c
index 647b3ada7..5b50b0335 100644
--- a/vp8/common/reconinter.c
+++ b/vp8/common/reconinter.c
@@ -662,8 +662,7 @@ void vp8_build_1st_inter16x16_predictors_mby(MACROBLOCKD *xd,
(ymv.as_mv.row & 7) << 1,
dst_y, dst_ystride);
} else {
- RECON_INVOKE(&xd->rtcd->recon, copy16x16)
- (ptr, pre_stride, dst_y, dst_ystride);
+ vp8_copy_mem16x16(ptr, pre_stride, dst_y, dst_ystride);
}
}
diff --git a/vp8/common/rtcd_defs.sh b/vp8/common/rtcd_defs.sh
index 66029f88e..6667c6562 100644
--- a/vp8/common/rtcd_defs.sh
+++ b/vp8/common/rtcd_defs.sh
@@ -5,6 +5,8 @@ EOF
}
forward_decls common_forward_decls
+
+
prototype void vp8_filter_block2d_4x4_8 "const unsigned char *src_ptr, const unsigned int src_stride, const short *HFilter_aligned16, const short *VFilter_aligned16, unsigned char *dst_ptr, unsigned int dst_stride"
prototype void vp8_filter_block2d_8x4_8 "const unsigned char *src_ptr, const unsigned int src_stride, const short *HFilter_aligned16, const short *VFilter_aligned16, unsigned char *dst_ptr, unsigned int dst_stride"
prototype void vp8_filter_block2d_8x8_8 "const unsigned char *src_ptr, const unsigned int src_stride, const short *HFilter_aligned16, const short *VFilter_aligned16, unsigned char *dst_ptr, unsigned int dst_stride"
@@ -19,3 +21,12 @@ if [ "$CONFIG_GCC" = "yes" ]; then
specialize vp8_filter_block2d_8x8_8 sse4_1 sse2
specialize vp8_filter_block2d_16x16_8 sse4_1 sse2
fi
+
+
+#
+# RECON
+#
+prototype void vp8_copy_mem16x16 "unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch"
+specialize vp8_copy_mem16x16 mmx sse2 media neon dspr2
+vp8_copy_mem16x16_media=vp8_copy_mem16x16_v6
+vp8_copy_mem16x16_dspr2=vp8_copy_mem16x16_dspr2
diff --git a/vp8/common/x86/recon_x86.h b/vp8/common/x86/recon_x86.h
index fe0f8f0bc..c0180cc56 100644
--- a/vp8/common/x86/recon_x86.h
+++ b/vp8/common/x86/recon_x86.h
@@ -36,9 +36,6 @@ extern prototype_copy_block(vp8_copy_mem16x16_mmx);
#undef vp8_recon_copy8x4
#define vp8_recon_copy8x4 vp8_copy_mem8x4_mmx
-#undef vp8_recon_copy16x16
-#define vp8_recon_copy16x16 vp8_copy_mem16x16_mmx
-
#endif
#endif
diff --git a/vp8/common/x86/x86_systemdependent.c b/vp8/common/x86/x86_systemdependent.c
index 2c66d9fb7..c50778521 100644
--- a/vp8/common/x86/x86_systemdependent.c
+++ b/vp8/common/x86/x86_systemdependent.c
@@ -44,7 +44,6 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
rtcd->recon.recon = vp8_recon_b_mmx;
rtcd->recon.copy8x8 = vp8_copy_mem8x8_mmx;
rtcd->recon.copy8x4 = vp8_copy_mem8x4_mmx;
- rtcd->recon.copy16x16 = vp8_copy_mem16x16_mmx;
/* Disabled due to unsupported enhanced interpolation/high_prec mv
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_mmx;
@@ -80,7 +79,6 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
if (flags & HAS_SSE2) {
rtcd->recon.recon2 = vp8_recon2b_sse2;
rtcd->recon.recon4 = vp8_recon4b_sse2;
- rtcd->recon.copy16x16 = vp8_copy_mem16x16_sse2;
/* these are disable because of unsupported diagonal pred modes
rtcd->recon.build_intra_predictors_mbuv =
diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c
index 584570da9..6e788784e 100644
--- a/vp8/encoder/encodeframe.c
+++ b/vp8/encoder/encodeframe.c
@@ -309,9 +309,7 @@ static void build_activity_map(VP8_COMP *cpi) {
recon_yoffset += 16;
#endif
// Copy current mb to a buffer
- RECON_INVOKE(&xd->rtcd->recon, copy16x16)(x->src.y_buffer,
- x->src.y_stride,
- x->thismb, 16);
+ vp8_copy_mem16x16(x->src.y_buffer, x->src.y_stride, x->thismb, 16);
// measure activity
mb_activity = mb_activity_measure(cpi, x, mb_row, mb_col);
@@ -579,9 +577,7 @@ static void pick_mb_modes(VP8_COMP *cpi,
xd->dst.v_buffer = cm->yv12_fb[dst_fb_idx].v_buffer + recon_uvoffset;
// Copy current MB to a work buffer
- RECON_INVOKE(&xd->rtcd->recon, copy16x16)(x->src.y_buffer,
- x->src.y_stride,
- x->thismb, 16);
+ vp8_copy_mem16x16(x->src.y_buffer, x->src.y_stride, x->thismb, 16);
x->rddiv = cpi->RDDIV;
x->rdmult = cpi->RDMULT;
@@ -767,9 +763,7 @@ static void pick_sb_modes (VP8_COMP *cpi,
xd->dst.v_buffer = cm->yv12_fb[dst_fb_idx].v_buffer + recon_uvoffset;
#if 0 // FIXME
/* Copy current MB to a work buffer */
- RECON_INVOKE(&xd->rtcd->recon, copy16x16)(x->src.y_buffer,
- x->src.y_stride,
- x->thismb, 16);
+ vp8_copy_mem16x16(x->src.y_buffer, x->src.y_stride, x->thismb, 16);
#endif
x->rddiv = cpi->RDDIV;
x->rdmult = cpi->RDMULT;
@@ -967,9 +961,7 @@ static void encode_sb(VP8_COMP *cpi,
xd->dst.v_buffer = cm->yv12_fb[dst_fb_idx].v_buffer + recon_uvoffset;
// Copy current MB to a work buffer
- RECON_INVOKE(&xd->rtcd->recon, copy16x16)(x->src.y_buffer,
- x->src.y_stride,
- x->thismb, 16);
+ vp8_copy_mem16x16(x->src.y_buffer, x->src.y_stride, x->thismb, 16);
if (cpi->oxcf.tuning == VP8_TUNE_SSIM)
vp8_activity_masking(cpi, x);
diff --git a/vp8/encoder/firstpass.c b/vp8/encoder/firstpass.c
index 1e54371f7..18333e64c 100644
--- a/vp8/encoder/firstpass.c
+++ b/vp8/encoder/firstpass.c
@@ -528,7 +528,7 @@ void vp8_first_pass(VP8_COMP *cpi) {
xd->left_available = (mb_col != 0);
// Copy current mb to a buffer
- RECON_INVOKE(&xd->rtcd->recon, copy16x16)(x->src.y_buffer, x->src.y_stride, x->thismb, 16);
+ vp8_copy_mem16x16(x->src.y_buffer, x->src.y_stride, x->thismb, 16);
// do intra 16x16 prediction
this_error = vp8_encode_intra(cpi, x, use_dc_pred);
diff --git a/vp8/encoder/temporal_filter.c b/vp8/encoder/temporal_filter.c
index d57613bd5..6bc24a01f 100644
--- a/vp8/encoder/temporal_filter.c
+++ b/vp8/encoder/temporal_filter.c
@@ -59,7 +59,7 @@ static void vp8_temporal_filter_predictors_mb_c
xd->subpixel_predict16x16(yptr, stride,
(mv_col & 7) << 1, (mv_row & 7) << 1, &pred[0], 16);
} else {
- RECON_INVOKE(&xd->rtcd->recon, copy16x16)(yptr, stride, &pred[0], 16);
+ vp8_copy_mem16x16(yptr, stride, &pred[0], 16);
}
// U & V