diff options
author | Scott LaVarnway <slavarnway@google.com> | 2012-10-16 16:19:35 -0700 |
---|---|---|
committer | Scott LaVarnway <slavarnway@google.com> | 2012-10-16 16:19:35 -0700 |
commit | 15ce6bd62e46b09b512a392411a3564755c0dd10 (patch) | |
tree | 8453de31ccadd6857588e54cc6b77b2cb9538f2b | |
parent | 9a1962210ddc5b6074f0cdcaa26ab326115b5b14 (diff) | |
download | libvpx-15ce6bd62e46b09b512a392411a3564755c0dd10.tar libvpx-15ce6bd62e46b09b512a392411a3564755c0dd10.tar.gz libvpx-15ce6bd62e46b09b512a392411a3564755c0dd10.tar.bz2 libvpx-15ce6bd62e46b09b512a392411a3564755c0dd10.zip |
Removed the loopfilter rtcd invoke macro code
Change-Id: I446b2ffcbe732ffb112dbd97a4799272d4c01a84
-rw-r--r-- | vp8/common/arm/arm_systemdependent.c | 20 | ||||
-rw-r--r-- | vp8/common/arm/loopfilter_arm.h | 52 | ||||
-rw-r--r-- | vp8/common/generic/systemdependent.c | 9 | ||||
-rw-r--r-- | vp8/common/loopfilter.c | 228 | ||||
-rw-r--r-- | vp8/common/loopfilter.h | 66 | ||||
-rw-r--r-- | vp8/common/loopfilter_filters.c | 84 | ||||
-rw-r--r-- | vp8/common/onyxc_int.h | 1 | ||||
-rw-r--r-- | vp8/common/rtcd_defs.sh | 54 | ||||
-rw-r--r-- | vp8/common/x86/loopfilter_x86.c | 16 | ||||
-rw-r--r-- | vp8/common/x86/loopfilter_x86.h | 54 | ||||
-rw-r--r-- | vp8/common/x86/x86_systemdependent.c | 18 |
11 files changed, 207 insertions, 395 deletions
diff --git a/vp8/common/arm/arm_systemdependent.c b/vp8/common/arm/arm_systemdependent.c index 5fd5f5b1b..65a518188 100644 --- a/vp8/common/arm/arm_systemdependent.c +++ b/vp8/common/arm/arm_systemdependent.c @@ -49,17 +49,6 @@ void vp8_arch_arm_common_init(VP8_COMMON *ctx) { // rtcd->idct.iwalsh1 = vp8_short_inv_walsh4x4_1_v6; // rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_v6; - rtcd->loopfilter.normal_mb_v = vp8_loop_filter_mbv_armv6; - rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_armv6; - rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_armv6; - rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_armv6; - rtcd->loopfilter.simple_mb_v = - vp8_loop_filter_simple_vertical_edge_armv6; - rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_armv6; - rtcd->loopfilter.simple_mb_h = - vp8_loop_filter_simple_horizontal_edge_armv6; - rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_armv6; - rtcd->recon.copy16x16 = vp8_copy_mem16x16_v6; rtcd->recon.copy8x8 = vp8_copy_mem8x8_v6; rtcd->recon.copy8x4 = vp8_copy_mem8x4_v6; @@ -86,15 +75,6 @@ void vp8_arch_arm_common_init(VP8_COMMON *ctx) { // rtcd->idct.iwalsh1 = vp8_short_inv_walsh4x4_1_neon; // rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_neon; - rtcd->loopfilter.normal_mb_v = vp8_loop_filter_mbv_neon; - rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_neon; - rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_neon; - rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_neon; - rtcd->loopfilter.simple_mb_v = vp8_loop_filter_mbvs_neon; - rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_neon; - rtcd->loopfilter.simple_mb_h = vp8_loop_filter_mbhs_neon; - rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_neon; - rtcd->recon.copy16x16 = vp8_copy_mem16x16_neon; rtcd->recon.copy8x8 = vp8_copy_mem8x8_neon; rtcd->recon.copy8x4 = vp8_copy_mem8x4_neon; diff --git a/vp8/common/arm/loopfilter_arm.h b/vp8/common/arm/loopfilter_arm.h index 390a547b0..5df2a181b 100644 --- a/vp8/common/arm/loopfilter_arm.h +++ b/vp8/common/arm/loopfilter_arm.h @@ -24,32 +24,6 @@ extern prototype_simple_loopfilter(vp8_loop_filter_bhs_armv6); extern prototype_simple_loopfilter(vp8_loop_filter_simple_horizontal_edge_armv6); extern prototype_simple_loopfilter(vp8_loop_filter_simple_vertical_edge_armv6); -#if !CONFIG_RUNTIME_CPU_DETECT -#undef vp8_lf_normal_mb_v -#define vp8_lf_normal_mb_v vp8_loop_filter_mbv_armv6 - -#undef vp8_lf_normal_b_v -#define vp8_lf_normal_b_v vp8_loop_filter_bv_armv6 - -#undef vp8_lf_normal_mb_h -#define vp8_lf_normal_mb_h vp8_loop_filter_mbh_armv6 - -#undef vp8_lf_normal_b_h -#define vp8_lf_normal_b_h vp8_loop_filter_bh_armv6 - -#undef vp8_lf_simple_mb_v -#define vp8_lf_simple_mb_v vp8_loop_filter_simple_vertical_edge_armv6 - -#undef vp8_lf_simple_b_v -#define vp8_lf_simple_b_v vp8_loop_filter_bvs_armv6 - -#undef vp8_lf_simple_mb_h -#define vp8_lf_simple_mb_h vp8_loop_filter_simple_horizontal_edge_armv6 - -#undef vp8_lf_simple_b_h -#define vp8_lf_simple_b_h vp8_loop_filter_bhs_armv6 -#endif /* !CONFIG_RUNTIME_CPU_DETECT */ - #endif /* HAVE_ARMV6 */ #if HAVE_ARMV7 @@ -62,32 +36,6 @@ extern prototype_simple_loopfilter(vp8_loop_filter_bvs_neon); extern prototype_simple_loopfilter(vp8_loop_filter_mbhs_neon); extern prototype_simple_loopfilter(vp8_loop_filter_bhs_neon); -#if !CONFIG_RUNTIME_CPU_DETECT -#undef vp8_lf_normal_mb_v -#define vp8_lf_normal_mb_v vp8_loop_filter_mbv_neon - -#undef vp8_lf_normal_b_v -#define vp8_lf_normal_b_v vp8_loop_filter_bv_neon - -#undef vp8_lf_normal_mb_h -#define vp8_lf_normal_mb_h vp8_loop_filter_mbh_neon - -#undef vp8_lf_normal_b_h -#define vp8_lf_normal_b_h vp8_loop_filter_bh_neon - -#undef vp8_lf_simple_mb_v -#define vp8_lf_simple_mb_v vp8_loop_filter_mbvs_neon - -#undef vp8_lf_simple_b_v -#define vp8_lf_simple_b_v vp8_loop_filter_bvs_neon - -#undef vp8_lf_simple_mb_h -#define vp8_lf_simple_mb_h vp8_loop_filter_mbhs_neon - -#undef vp8_lf_simple_b_h -#define vp8_lf_simple_b_h vp8_loop_filter_bhs_neon -#endif /* !CONFIG_RUNTIME_CPU_DETECT */ - #endif /* HAVE_ARMV7 */ #endif /* LOOPFILTER_ARM_H */ diff --git a/vp8/common/generic/systemdependent.c b/vp8/common/generic/systemdependent.c index 363ad098a..0acae30f5 100644 --- a/vp8/common/generic/systemdependent.c +++ b/vp8/common/generic/systemdependent.c @@ -64,15 +64,6 @@ void vp8_machine_specific_config(VP8_COMMON *ctx) { rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_c; rtcd->subpix.bilinear_avg4x4 = vp8_bilinear_predict_avg4x4_c; - rtcd->loopfilter.normal_mb_v = vp8_loop_filter_mbv_c; - rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_c; - rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_c; - rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_c; - rtcd->loopfilter.simple_mb_v = vp8_loop_filter_simple_vertical_edge_c; - rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_c; - rtcd->loopfilter.simple_mb_h = vp8_loop_filter_simple_horizontal_edge_c; - rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_c; - #if CONFIG_POSTPROC || (CONFIG_VP8_ENCODER && CONFIG_INTERNAL_STATS) rtcd->postproc.down = vp8_mbpost_proc_down_c; rtcd->postproc.across = vp8_mbpost_proc_across_ip_c; diff --git a/vp8/common/loopfilter.c b/vp8/common/loopfilter.c index 5937f6c06..b34ee0272 100644 --- a/vp8/common/loopfilter.c +++ b/vp8/common/loopfilter.c @@ -16,102 +16,6 @@ #include "vp8/common/seg_common.h" -typedef unsigned char uc; - -prototype_loopfilter(vp8_loop_filter_horizontal_edge_c); -prototype_loopfilter(vp8_loop_filter_vertical_edge_c); - - -prototype_loopfilter(vp8_mbloop_filter_horizontal_edge_c); -prototype_loopfilter(vp8_mbloop_filter_vertical_edge_c); - -prototype_simple_loopfilter(vp8_loop_filter_simple_horizontal_edge_c); -prototype_simple_loopfilter(vp8_loop_filter_simple_vertical_edge_c); - -/* Horizontal MB filtering */ -void vp8_loop_filter_mbh_c(unsigned char *y_ptr, unsigned char *u_ptr, - unsigned char *v_ptr, int y_stride, int uv_stride, - loop_filter_info *lfi) { - vp8_mbloop_filter_horizontal_edge_c(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2); - - if (u_ptr) - vp8_mbloop_filter_horizontal_edge_c(u_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1); - - if (v_ptr) - vp8_mbloop_filter_horizontal_edge_c(v_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1); -} - -/* Vertical MB Filtering */ -void vp8_loop_filter_mbv_c(unsigned char *y_ptr, unsigned char *u_ptr, - unsigned char *v_ptr, int y_stride, int uv_stride, - loop_filter_info *lfi) { - vp8_mbloop_filter_vertical_edge_c(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2); - - if (u_ptr) - vp8_mbloop_filter_vertical_edge_c(u_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1); - - if (v_ptr) - vp8_mbloop_filter_vertical_edge_c(v_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1); -} - -/* Horizontal B Filtering */ -void vp8_loop_filter_bh_c(unsigned char *y_ptr, unsigned char *u_ptr, - unsigned char *v_ptr, int y_stride, int uv_stride, - loop_filter_info *lfi) { - vp8_loop_filter_horizontal_edge_c(y_ptr + 4 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); - vp8_loop_filter_horizontal_edge_c(y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); - vp8_loop_filter_horizontal_edge_c(y_ptr + 12 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); - - if (u_ptr) - vp8_loop_filter_horizontal_edge_c(u_ptr + 4 * uv_stride, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1); - - if (v_ptr) - vp8_loop_filter_horizontal_edge_c(v_ptr + 4 * uv_stride, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1); -} - -void vp8_loop_filter_bh8x8_c(unsigned char *y_ptr, unsigned char *u_ptr, - unsigned char *v_ptr, int y_stride, int uv_stride, - loop_filter_info *lfi) { - vp8_mbloop_filter_horizontal_edge_c( - y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); -} - -void vp8_loop_filter_bhs_c(unsigned char *y_ptr, int y_stride, - const unsigned char *blimit) { - vp8_loop_filter_simple_horizontal_edge_c(y_ptr + 4 * y_stride, y_stride, blimit); - vp8_loop_filter_simple_horizontal_edge_c(y_ptr + 8 * y_stride, y_stride, blimit); - vp8_loop_filter_simple_horizontal_edge_c(y_ptr + 12 * y_stride, y_stride, blimit); -} - -/* Vertical B Filtering */ -void vp8_loop_filter_bv_c(unsigned char *y_ptr, unsigned char *u_ptr, - unsigned char *v_ptr, int y_stride, int uv_stride, - loop_filter_info *lfi) { - vp8_loop_filter_vertical_edge_c(y_ptr + 4, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); - vp8_loop_filter_vertical_edge_c(y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); - vp8_loop_filter_vertical_edge_c(y_ptr + 12, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); - - if (u_ptr) - vp8_loop_filter_vertical_edge_c(u_ptr + 4, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1); - - if (v_ptr) - vp8_loop_filter_vertical_edge_c(v_ptr + 4, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1); -} - -void vp8_loop_filter_bv8x8_c(unsigned char *y_ptr, unsigned char *u_ptr, - unsigned char *v_ptr, int y_stride, int uv_stride, - loop_filter_info *lfi) { - vp8_mbloop_filter_vertical_edge_c( - y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); -} - -void vp8_loop_filter_bvs_c(unsigned char *y_ptr, int y_stride, - const unsigned char *blimit) { - vp8_loop_filter_simple_vertical_edge_c(y_ptr + 4, y_stride, blimit); - vp8_loop_filter_simple_vertical_edge_c(y_ptr + 8, y_stride, blimit); - vp8_loop_filter_simple_vertical_edge_c(y_ptr + 12, y_stride, blimit); -} - static void lf_init_lut(loop_filter_info_n *lfi) { int filt_lvl; @@ -281,7 +185,7 @@ void vp8_loop_filter_frame ) { YV12_BUFFER_CONFIG *post = cm->frame_to_show; loop_filter_info_n *lfi_n = &cm->lf_info; - loop_filter_info lfi; + struct loop_filter_info lfi; FRAME_TYPE frame_type = cm->frame_type; @@ -332,16 +236,16 @@ void vp8_loop_filter_frame mode_info_context[-1].mbmi.mb_skip_coeff) #endif ) - vp8_loop_filter_mbv_c - (y_ptr, u_ptr, v_ptr, post->y_stride, post->uv_stride, &lfi); + vp8_loop_filter_mbv(y_ptr, u_ptr, v_ptr, post->y_stride, + post->uv_stride, &lfi); if (!skip_lf && tx_type != TX_16X16) { if (tx_type == TX_8X8) - vp8_loop_filter_bv8x8_c - (y_ptr, u_ptr, v_ptr, post->y_stride, post->uv_stride, &lfi); + vp8_loop_filter_bv8x8(y_ptr, u_ptr, v_ptr, post->y_stride, + post->uv_stride, &lfi); else - LF_INVOKE(&cm->rtcd.loopfilter, normal_b_v) - (y_ptr, u_ptr, v_ptr, post->y_stride, post->uv_stride, &lfi); + vp8_loop_filter_bv(y_ptr, u_ptr, v_ptr, post->y_stride, + post->uv_stride, &lfi); } @@ -353,16 +257,16 @@ void vp8_loop_filter_frame mode_info_context[-cm->mode_info_stride].mbmi.mb_skip_coeff) #endif ) - vp8_loop_filter_mbh_c - (y_ptr, u_ptr, v_ptr, post->y_stride, post->uv_stride, &lfi); + vp8_loop_filter_mbh(y_ptr, u_ptr, v_ptr, post->y_stride, + post->uv_stride, &lfi); if (!skip_lf && tx_type != TX_16X16) { if (tx_type == TX_8X8) - vp8_loop_filter_bh8x8_c - (y_ptr, u_ptr, v_ptr, post->y_stride, post->uv_stride, &lfi); + vp8_loop_filter_bh8x8(y_ptr, u_ptr, v_ptr, post->y_stride, + post->uv_stride, &lfi); else - LF_INVOKE(&cm->rtcd.loopfilter, normal_b_h) - (y_ptr, u_ptr, v_ptr, post->y_stride, post->uv_stride, &lfi); + vp8_loop_filter_bh(y_ptr, u_ptr, v_ptr, post->y_stride, + post->uv_stride, &lfi); } } else { // FIXME: Not 8x8 aware @@ -373,12 +277,12 @@ void vp8_loop_filter_frame mode_info_context[-1].mbmi.mb_skip_coeff) #endif ) - LF_INVOKE(&cm->rtcd.loopfilter, simple_mb_v) - (y_ptr, post->y_stride, lfi_n->mblim[filter_level]); + vp8_loop_filter_simple_mbv(y_ptr, post->y_stride, + lfi_n->mblim[filter_level]); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, simple_b_v) - (y_ptr, post->y_stride, lfi_n->blim[filter_level]); + vp8_loop_filter_simple_bv(y_ptr, post->y_stride, + lfi_n->blim[filter_level]); /* don't apply across umv border */ if (mb_row > 0 @@ -388,12 +292,12 @@ void vp8_loop_filter_frame mode_info_context[-cm->mode_info_stride].mbmi.mb_skip_coeff) #endif ) - LF_INVOKE(&cm->rtcd.loopfilter, simple_mb_h) - (y_ptr, post->y_stride, lfi_n->mblim[filter_level]); + vp8_loop_filter_simple_mbh(y_ptr, post->y_stride, + lfi_n->mblim[filter_level]); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, simple_b_h) - (y_ptr, post->y_stride, lfi_n->blim[filter_level]); + vp8_loop_filter_simple_bh(y_ptr, post->y_stride, + lfi_n->blim[filter_level]); } } @@ -425,7 +329,7 @@ void vp8_loop_filter_frame_yonly int mb_col; loop_filter_info_n *lfi_n = &cm->lf_info; - loop_filter_info lfi; + struct loop_filter_info lfi; int filter_level; FRAME_TYPE frame_type = cm->frame_type; @@ -467,49 +371,43 @@ void vp8_loop_filter_frame_yonly lfi.hev_thr = lfi_n->hev_thr[hev_index]; if (mb_col > 0) - vp8_loop_filter_mbv_c - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_mbv(y_ptr, 0, 0, post->y_stride, 0, &lfi); if (!skip_lf && tx_type != TX_16X16) { if (tx_type == TX_8X8) - vp8_loop_filter_bv8x8_c - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_bv8x8(y_ptr, 0, 0, post->y_stride, 0, &lfi); else - LF_INVOKE(&cm->rtcd.loopfilter, normal_b_v) - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_bv(y_ptr, 0, 0, post->y_stride, 0, &lfi); } /* don't apply across umv border */ if (mb_row > 0) - vp8_loop_filter_mbh_c - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_mbh(y_ptr, 0, 0, post->y_stride, 0, &lfi); if (!skip_lf && tx_type != TX_16X16) { if (tx_type == TX_8X8) - vp8_loop_filter_bh8x8_c - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_bh8x8(y_ptr, 0, 0, post->y_stride, 0, &lfi); else - LF_INVOKE(&cm->rtcd.loopfilter, normal_b_h) - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_bh(y_ptr, 0, 0, post->y_stride, 0, &lfi); } } else { // FIXME: Not 8x8 aware if (mb_col > 0) - LF_INVOKE(&cm->rtcd.loopfilter, simple_mb_v) - (y_ptr, post->y_stride, lfi_n->mblim[filter_level]); + vp8_loop_filter_simple_mbv(y_ptr, post->y_stride, + lfi_n->mblim[filter_level]); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, simple_b_v) - (y_ptr, post->y_stride, lfi_n->blim[filter_level]); + vp8_loop_filter_simple_bv(y_ptr, post->y_stride, + lfi_n->blim[filter_level]); /* don't apply across umv border */ if (mb_row > 0) - LF_INVOKE(&cm->rtcd.loopfilter, simple_mb_h) - (y_ptr, post->y_stride, lfi_n->mblim[filter_level]); + vp8_loop_filter_simple_mbh(y_ptr, post->y_stride, + lfi_n->mblim[filter_level]); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, simple_b_h) - (y_ptr, post->y_stride, lfi_n->blim[filter_level]); + vp8_loop_filter_simple_bh(y_ptr, post->y_stride, + lfi_n->blim[filter_level]); } } @@ -536,7 +434,7 @@ void vp8_loop_filter_frame_segment(VP8_COMMON *cm, MACROBLOCKD *xd, int mb_col; loop_filter_info_n *lfi_n = &cm->lf_info; - loop_filter_info lfi; + struct loop_filter_info lfi; int filter_level; FRAME_TYPE frame_type = cm->frame_type; @@ -589,41 +487,35 @@ void vp8_loop_filter_frame_segment(VP8_COMMON *cm, MACROBLOCKD *xd, lfi.hev_thr = lfi_n->hev_thr[hev_index]; if (mb_col > 0) - vp8_loop_filter_mbv_c(y_ptr, 0, 0, post->y_stride, 0, + vp8_loop_filter_mbv(y_ptr, 0, 0, post->y_stride, 0, &lfi); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, normal_b_v)( - y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_bv(y_ptr, 0, 0, post->y_stride, 0, &lfi); /* don't apply across umv border */ if (mb_row > 0) - vp8_loop_filter_mbh_c(y_ptr, 0, 0, post->y_stride, 0, + vp8_loop_filter_mbh(y_ptr, 0, 0, post->y_stride, 0, &lfi); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, normal_b_h)( - y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_bh(y_ptr, 0, 0, post->y_stride, 0, &lfi); } else { if (mb_col > 0) - LF_INVOKE(&cm->rtcd.loopfilter, simple_mb_v)( - y_ptr, post->y_stride, + vp8_loop_filter_simple_mbv(y_ptr, post->y_stride, lfi_n->mblim[filter_level]); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, simple_b_v)( - y_ptr, post->y_stride, + vp8_loop_filter_simple_bv(y_ptr, post->y_stride, lfi_n->blim[filter_level]); /* don't apply across umv border */ if (mb_row > 0) - LF_INVOKE(&cm->rtcd.loopfilter, simple_mb_h)( - y_ptr, post->y_stride, + vp8_loop_filter_simple_mbh(y_ptr, post->y_stride, lfi_n->mblim[filter_level]); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, simple_b_h)( - y_ptr, post->y_stride, + vp8_loop_filter_simple_bh(y_ptr, post->y_stride, lfi_n->blim[filter_level]); } } @@ -656,7 +548,7 @@ void vp8_loop_filter_partial_frame int linestocopy, i; loop_filter_info_n *lfi_n = &cm->lf_info; - loop_filter_info lfi; + struct loop_filter_info lfi; int filter_level; int alt_flt_enabled = xd->segmentation_enabled; @@ -721,34 +613,30 @@ void vp8_loop_filter_partial_frame lfi.hev_thr = lfi_n->hev_thr[hev_index]; if (mb_col > 0) - LF_INVOKE(&cm->rtcd.loopfilter, normal_mb_v) - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_mbv(y_ptr, 0, 0, post->y_stride, 0, &lfi); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, normal_b_v) - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_bv(y_ptr, 0, 0, post->y_stride, 0, &lfi); - LF_INVOKE(&cm->rtcd.loopfilter, normal_mb_h) - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_mbh(y_ptr, 0, 0, post->y_stride, 0, &lfi); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, normal_b_h) - (y_ptr, 0, 0, post->y_stride, 0, &lfi); + vp8_loop_filter_bh(y_ptr, 0, 0, post->y_stride, 0, &lfi); } else { if (mb_col > 0) - LF_INVOKE(&cm->rtcd.loopfilter, simple_mb_v) - (y_ptr, post->y_stride, lfi_n->mblim[filter_level]); + vp8_loop_filter_simple_mbv (y_ptr, post->y_stride, + lfi_n->mblim[filter_level]); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, simple_b_v) - (y_ptr, post->y_stride, lfi_n->blim[filter_level]); + vp8_loop_filter_simple_bv(y_ptr, post->y_stride, + lfi_n->blim[filter_level]); - LF_INVOKE(&cm->rtcd.loopfilter, simple_mb_h) - (y_ptr, post->y_stride, lfi_n->mblim[filter_level]); + vp8_loop_filter_simple_mbh(y_ptr, post->y_stride, + lfi_n->mblim[filter_level]); if (!skip_lf) - LF_INVOKE(&cm->rtcd.loopfilter, simple_b_h) - (y_ptr, post->y_stride, lfi_n->blim[filter_level]); + vp8_loop_filter_simple_bh(y_ptr, post->y_stride, + lfi_n->blim[filter_level]); } } diff --git a/vp8/common/loopfilter.h b/vp8/common/loopfilter.h index b2ba95d5f..df78b8c12 100644 --- a/vp8/common/loopfilter.h +++ b/vp8/common/loopfilter.h @@ -42,12 +42,12 @@ typedef struct { unsigned char mode_lf_lut[MB_MODE_COUNT]; } loop_filter_info_n; -typedef struct { +struct loop_filter_info { const unsigned char *mblim; const unsigned char *blim; const unsigned char *lim; const unsigned char *hev_thr; -} loop_filter_info; +}; #define prototype_loopfilter(sym) \ @@ -56,7 +56,7 @@ typedef struct { #define prototype_loopfilter_block(sym) \ void sym(unsigned char *y, unsigned char *u, unsigned char *v, \ - int ystride, int uv_stride, loop_filter_info *lfi) + int ystride, int uv_stride, struct loop_filter_info *lfi) #define prototype_simple_loopfilter(sym) \ void sym(unsigned char *y, int ystride, const unsigned char *blimit) @@ -69,66 +69,6 @@ typedef struct { #include "arm/loopfilter_arm.h" #endif -#ifndef vp8_lf_normal_mb_v -#define vp8_lf_normal_mb_v vp8_loop_filter_mbv_c -#endif -extern prototype_loopfilter_block(vp8_lf_normal_mb_v); - -#ifndef vp8_lf_normal_b_v -#define vp8_lf_normal_b_v vp8_loop_filter_bv_c -#endif -extern prototype_loopfilter_block(vp8_lf_normal_b_v); - -#ifndef vp8_lf_normal_mb_h -#define vp8_lf_normal_mb_h vp8_loop_filter_mbh_c -#endif -extern prototype_loopfilter_block(vp8_lf_normal_mb_h); - -#ifndef vp8_lf_normal_b_h -#define vp8_lf_normal_b_h vp8_loop_filter_bh_c -#endif -extern prototype_loopfilter_block(vp8_lf_normal_b_h); - -#ifndef vp8_lf_simple_mb_v -#define vp8_lf_simple_mb_v vp8_loop_filter_simple_vertical_edge_c -#endif -extern prototype_simple_loopfilter(vp8_lf_simple_mb_v); - -#ifndef vp8_lf_simple_b_v -#define vp8_lf_simple_b_v vp8_loop_filter_bvs_c -#endif -extern prototype_simple_loopfilter(vp8_lf_simple_b_v); - -#ifndef vp8_lf_simple_mb_h -#define vp8_lf_simple_mb_h vp8_loop_filter_simple_horizontal_edge_c -#endif -extern prototype_simple_loopfilter(vp8_lf_simple_mb_h); - -#ifndef vp8_lf_simple_b_h -#define vp8_lf_simple_b_h vp8_loop_filter_bhs_c -#endif -extern prototype_simple_loopfilter(vp8_lf_simple_b_h); - -typedef prototype_loopfilter_block((*vp8_lf_block_fn_t)); -typedef prototype_simple_loopfilter((*vp8_slf_block_fn_t)); - -typedef struct { - vp8_lf_block_fn_t normal_mb_v; - vp8_lf_block_fn_t normal_b_v; - vp8_lf_block_fn_t normal_mb_h; - vp8_lf_block_fn_t normal_b_h; - vp8_slf_block_fn_t simple_mb_v; - vp8_slf_block_fn_t simple_b_v; - vp8_slf_block_fn_t simple_mb_h; - vp8_slf_block_fn_t simple_b_h; -} vp8_loopfilter_rtcd_vtable_t; - -#if CONFIG_RUNTIME_CPU_DETECT -#define LF_INVOKE(ctx,fn) (ctx)->fn -#else -#define LF_INVOKE(ctx,fn) vp8_lf_##fn -#endif - typedef void loop_filter_uvfunction ( unsigned char *u, /* source pointer */ diff --git a/vp8/common/loopfilter_filters.c b/vp8/common/loopfilter_filters.c index ef69ffecc..3f97d2101 100644 --- a/vp8/common/loopfilter_filters.c +++ b/vp8/common/loopfilter_filters.c @@ -379,3 +379,87 @@ void vp8_loop_filter_simple_vertical_edge_c } while (++i < 16); } + +/* Vertical MB Filtering */ +void vp8_loop_filter_mbv_c(unsigned char *y_ptr, unsigned char *u_ptr, + unsigned char *v_ptr, int y_stride, int uv_stride, + struct loop_filter_info *lfi) { + vp8_mbloop_filter_vertical_edge_c(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2); + + if (u_ptr) + vp8_mbloop_filter_vertical_edge_c(u_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1); + + if (v_ptr) + vp8_mbloop_filter_vertical_edge_c(v_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1); +} + +/* Vertical B Filtering */ +void vp8_loop_filter_bv_c(unsigned char *y_ptr, unsigned char *u_ptr, + unsigned char *v_ptr, int y_stride, int uv_stride, + struct loop_filter_info *lfi) { + vp8_loop_filter_vertical_edge_c(y_ptr + 4, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); + vp8_loop_filter_vertical_edge_c(y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); + vp8_loop_filter_vertical_edge_c(y_ptr + 12, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); + + if (u_ptr) + vp8_loop_filter_vertical_edge_c(u_ptr + 4, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1); + + if (v_ptr) + vp8_loop_filter_vertical_edge_c(v_ptr + 4, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1); +} + +/* Horizontal MB filtering */ +void vp8_loop_filter_mbh_c(unsigned char *y_ptr, unsigned char *u_ptr, + unsigned char *v_ptr, int y_stride, int uv_stride, + struct loop_filter_info *lfi) { + vp8_mbloop_filter_horizontal_edge_c(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2); + + if (u_ptr) + vp8_mbloop_filter_horizontal_edge_c(u_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1); + + if (v_ptr) + vp8_mbloop_filter_horizontal_edge_c(v_ptr, uv_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 1); +} + +/* Horizontal B Filtering */ +void vp8_loop_filter_bh_c(unsigned char *y_ptr, unsigned char *u_ptr, + unsigned char *v_ptr, int y_stride, int uv_stride, + struct loop_filter_info *lfi) { + vp8_loop_filter_horizontal_edge_c(y_ptr + 4 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); + vp8_loop_filter_horizontal_edge_c(y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); + vp8_loop_filter_horizontal_edge_c(y_ptr + 12 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); + + if (u_ptr) + vp8_loop_filter_horizontal_edge_c(u_ptr + 4 * uv_stride, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1); + + if (v_ptr) + vp8_loop_filter_horizontal_edge_c(v_ptr + 4 * uv_stride, uv_stride, lfi->blim, lfi->lim, lfi->hev_thr, 1); +} + +void vp8_loop_filter_bh8x8_c(unsigned char *y_ptr, unsigned char *u_ptr, + unsigned char *v_ptr, int y_stride, int uv_stride, + struct loop_filter_info *lfi) { + vp8_mbloop_filter_horizontal_edge_c( + y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); +} + +void vp8_loop_filter_bhs_c(unsigned char *y_ptr, int y_stride, + const unsigned char *blimit) { + vp8_loop_filter_simple_horizontal_edge_c(y_ptr + 4 * y_stride, y_stride, blimit); + vp8_loop_filter_simple_horizontal_edge_c(y_ptr + 8 * y_stride, y_stride, blimit); + vp8_loop_filter_simple_horizontal_edge_c(y_ptr + 12 * y_stride, y_stride, blimit); +} + +void vp8_loop_filter_bv8x8_c(unsigned char *y_ptr, unsigned char *u_ptr, + unsigned char *v_ptr, int y_stride, int uv_stride, + struct loop_filter_info *lfi) { + vp8_mbloop_filter_vertical_edge_c( + y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); +} + +void vp8_loop_filter_bvs_c(unsigned char *y_ptr, int y_stride, + const unsigned char *blimit) { + vp8_loop_filter_simple_vertical_edge_c(y_ptr + 4, y_stride, blimit); + vp8_loop_filter_simple_vertical_edge_c(y_ptr + 8, y_stride, blimit); + vp8_loop_filter_simple_vertical_edge_c(y_ptr + 12, y_stride, blimit); +} diff --git a/vp8/common/onyxc_int.h b/vp8/common/onyxc_int.h index e99f69bdc..0396a7087 100644 --- a/vp8/common/onyxc_int.h +++ b/vp8/common/onyxc_int.h @@ -171,7 +171,6 @@ typedef struct VP8_COMMON_RTCD { #if CONFIG_RUNTIME_CPU_DETECT vp8_idct_rtcd_vtable_t idct; vp8_subpix_rtcd_vtable_t subpix; - vp8_loopfilter_rtcd_vtable_t loopfilter; #if CONFIG_POSTPROC vp8_postproc_rtcd_vtable_t postproc; #endif diff --git a/vp8/common/rtcd_defs.sh b/vp8/common/rtcd_defs.sh index 247796356..ef272df90 100644 --- a/vp8/common/rtcd_defs.sh +++ b/vp8/common/rtcd_defs.sh @@ -120,3 +120,57 @@ specialize vp8_intra_uv4x4_predict; prototype void vp8_comp_intra_uv4x4_predict "BLOCKD *x, int b_mode, int second_mode, unsigned char *predictor" specialize vp8_comp_intra_uv4x4_predict; + +# +# Loopfilter +# +prototype void vp8_loop_filter_mbv "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi" +specialize vp8_loop_filter_mbv; + +prototype void vp8_loop_filter_bv "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi" +specialize vp8_loop_filter_bv; + +prototype void vp8_loop_filter_bv8x8 "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi" +specialize vp8_loop_filter_bv8x8; + +prototype void vp8_loop_filter_mbh "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi" +specialize vp8_loop_filter_mbh; + +prototype void vp8_loop_filter_bh "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi" +specialize vp8_loop_filter_bh; + +prototype void vp8_loop_filter_bh8x8 "unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi" +specialize vp8_loop_filter_bh8x8; + +prototype void vp8_loop_filter_simple_mbv "unsigned char *y, int ystride, const unsigned char *blimit" +specialize vp8_loop_filter_simple_mbv mmx sse2 media neon +vp8_loop_filter_simple_mbv_c=vp8_loop_filter_simple_vertical_edge_c +vp8_loop_filter_simple_mbv_mmx=vp8_loop_filter_simple_vertical_edge_mmx +vp8_loop_filter_simple_mbv_sse2=vp8_loop_filter_simple_vertical_edge_sse2 +vp8_loop_filter_simple_mbv_media=vp8_loop_filter_simple_vertical_edge_armv6 +vp8_loop_filter_simple_mbv_neon=vp8_loop_filter_mbvs_neon + +prototype void vp8_loop_filter_simple_mbh "unsigned char *y, int ystride, const unsigned char *blimit" +specialize vp8_loop_filter_simple_mbh mmx sse2 media neon +vp8_loop_filter_simple_mbh_c=vp8_loop_filter_simple_horizontal_edge_c +vp8_loop_filter_simple_mbh_mmx=vp8_loop_filter_simple_horizontal_edge_mmx +vp8_loop_filter_simple_mbh_sse2=vp8_loop_filter_simple_horizontal_edge_sse2 +vp8_loop_filter_simple_mbh_media=vp8_loop_filter_simple_horizontal_edge_armv6 +vp8_loop_filter_simple_mbh_neon=vp8_loop_filter_mbhs_neon + +prototype void vp8_loop_filter_simple_bv "unsigned char *y, int ystride, const unsigned char *blimit" +specialize vp8_loop_filter_simple_bv mmx sse2 media neon +vp8_loop_filter_simple_bv_c=vp8_loop_filter_bvs_c +vp8_loop_filter_simple_bv_mmx=vp8_loop_filter_bvs_mmx +vp8_loop_filter_simple_bv_sse2=vp8_loop_filter_bvs_sse2 +vp8_loop_filter_simple_bv_media=vp8_loop_filter_bvs_armv6 +vp8_loop_filter_simple_bv_neon=vp8_loop_filter_bvs_neon + +prototype void vp8_loop_filter_simple_bh "unsigned char *y, int ystride, const unsigned char *blimit" +specialize vp8_loop_filter_simple_bh mmx sse2 media neon +vp8_loop_filter_simple_bh_c=vp8_loop_filter_bhs_c +vp8_loop_filter_simple_bh_mmx=vp8_loop_filter_bhs_mmx +vp8_loop_filter_simple_bh_sse2=vp8_loop_filter_bhs_sse2 +vp8_loop_filter_simple_bh_media=vp8_loop_filter_bhs_armv6 +vp8_loop_filter_simple_bh_neon=vp8_loop_filter_bhs_neon + diff --git a/vp8/common/x86/loopfilter_x86.c b/vp8/common/x86/loopfilter_x86.c index add888835..e7239818e 100644 --- a/vp8/common/x86/loopfilter_x86.c +++ b/vp8/common/x86/loopfilter_x86.c @@ -30,7 +30,7 @@ extern loop_filter_uvfunction vp8_mbloop_filter_vertical_edge_uv_sse2; #if HAVE_MMX /* Horizontal MB filtering */ void vp8_loop_filter_mbh_mmx(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, - int y_stride, int uv_stride, loop_filter_info *lfi) { + int y_stride, int uv_stride, struct loop_filter_info *lfi) { vp8_mbloop_filter_horizontal_edge_mmx(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2); if (u_ptr) @@ -43,7 +43,7 @@ void vp8_loop_filter_mbh_mmx(unsigned char *y_ptr, unsigned char *u_ptr, unsigne /* Vertical MB Filtering */ void vp8_loop_filter_mbv_mmx(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, - int y_stride, int uv_stride, loop_filter_info *lfi) { + int y_stride, int uv_stride, struct loop_filter_info *lfi) { vp8_mbloop_filter_vertical_edge_mmx(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2); if (u_ptr) @@ -56,7 +56,7 @@ void vp8_loop_filter_mbv_mmx(unsigned char *y_ptr, unsigned char *u_ptr, unsigne /* Horizontal B Filtering */ void vp8_loop_filter_bh_mmx(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, - int y_stride, int uv_stride, loop_filter_info *lfi) { + int y_stride, int uv_stride, struct loop_filter_info *lfi) { vp8_loop_filter_horizontal_edge_mmx(y_ptr + 4 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); vp8_loop_filter_horizontal_edge_mmx(y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); vp8_loop_filter_horizontal_edge_mmx(y_ptr + 12 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); @@ -78,7 +78,7 @@ void vp8_loop_filter_bhs_mmx(unsigned char *y_ptr, int y_stride, const unsigned /* Vertical B Filtering */ void vp8_loop_filter_bv_mmx(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, - int y_stride, int uv_stride, loop_filter_info *lfi) { + int y_stride, int uv_stride, struct loop_filter_info *lfi) { vp8_loop_filter_vertical_edge_mmx(y_ptr + 4, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); vp8_loop_filter_vertical_edge_mmx(y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); vp8_loop_filter_vertical_edge_mmx(y_ptr + 12, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); @@ -102,7 +102,7 @@ void vp8_loop_filter_bvs_mmx(unsigned char *y_ptr, int y_stride, const unsigned /* Horizontal MB filtering */ #if HAVE_SSE2 void vp8_loop_filter_mbh_sse2(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, - int y_stride, int uv_stride, loop_filter_info *lfi) { + int y_stride, int uv_stride, struct loop_filter_info *lfi) { vp8_mbloop_filter_horizontal_edge_sse2(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2); if (u_ptr) @@ -112,7 +112,7 @@ void vp8_loop_filter_mbh_sse2(unsigned char *y_ptr, unsigned char *u_ptr, unsign /* Vertical MB Filtering */ void vp8_loop_filter_mbv_sse2(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, - int y_stride, int uv_stride, loop_filter_info *lfi) { + int y_stride, int uv_stride, struct loop_filter_info *lfi) { vp8_mbloop_filter_vertical_edge_sse2(y_ptr, y_stride, lfi->mblim, lfi->lim, lfi->hev_thr, 2); if (u_ptr) @@ -122,7 +122,7 @@ void vp8_loop_filter_mbv_sse2(unsigned char *y_ptr, unsigned char *u_ptr, unsign /* Horizontal B Filtering */ void vp8_loop_filter_bh_sse2(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, - int y_stride, int uv_stride, loop_filter_info *lfi) { + int y_stride, int uv_stride, struct loop_filter_info *lfi) { vp8_loop_filter_horizontal_edge_sse2(y_ptr + 4 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); vp8_loop_filter_horizontal_edge_sse2(y_ptr + 8 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); vp8_loop_filter_horizontal_edge_sse2(y_ptr + 12 * y_stride, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); @@ -141,7 +141,7 @@ void vp8_loop_filter_bhs_sse2(unsigned char *y_ptr, int y_stride, const unsigned /* Vertical B Filtering */ void vp8_loop_filter_bv_sse2(unsigned char *y_ptr, unsigned char *u_ptr, unsigned char *v_ptr, - int y_stride, int uv_stride, loop_filter_info *lfi) { + int y_stride, int uv_stride, struct loop_filter_info *lfi) { vp8_loop_filter_vertical_edge_sse2(y_ptr + 4, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); vp8_loop_filter_vertical_edge_sse2(y_ptr + 8, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); vp8_loop_filter_vertical_edge_sse2(y_ptr + 12, y_stride, lfi->blim, lfi->lim, lfi->hev_thr, 2); diff --git a/vp8/common/x86/loopfilter_x86.h b/vp8/common/x86/loopfilter_x86.h index 1ed6c213f..3cbea8f04 100644 --- a/vp8/common/x86/loopfilter_x86.h +++ b/vp8/common/x86/loopfilter_x86.h @@ -28,33 +28,6 @@ extern prototype_simple_loopfilter(vp8_loop_filter_simple_vertical_edge_mmx); extern prototype_simple_loopfilter(vp8_loop_filter_bvs_mmx); extern prototype_simple_loopfilter(vp8_loop_filter_simple_horizontal_edge_mmx); extern prototype_simple_loopfilter(vp8_loop_filter_bhs_mmx); - - -#if !CONFIG_RUNTIME_CPU_DETECT -#undef vp8_lf_normal_mb_v -#define vp8_lf_normal_mb_v vp8_loop_filter_mbv_mmx - -#undef vp8_lf_normal_b_v -#define vp8_lf_normal_b_v vp8_loop_filter_bv_mmx - -#undef vp8_lf_normal_mb_h -#define vp8_lf_normal_mb_h vp8_loop_filter_mbh_mmx - -#undef vp8_lf_normal_b_h -#define vp8_lf_normal_b_h vp8_loop_filter_bh_mmx - -#undef vp8_lf_simple_mb_v -#define vp8_lf_simple_mb_v vp8_loop_filter_simple_vertical_edge_mmx - -#undef vp8_lf_simple_b_v -#define vp8_lf_simple_b_v vp8_loop_filter_bvs_mmx - -#undef vp8_lf_simple_mb_h -#define vp8_lf_simple_mb_h vp8_loop_filter_simple_horizontal_edge_mmx - -#undef vp8_lf_simple_b_h -#define vp8_lf_simple_b_h vp8_loop_filter_bhs_mmx -#endif #endif @@ -67,33 +40,6 @@ extern prototype_simple_loopfilter(vp8_loop_filter_simple_vertical_edge_sse2); extern prototype_simple_loopfilter(vp8_loop_filter_bvs_sse2); extern prototype_simple_loopfilter(vp8_loop_filter_simple_horizontal_edge_sse2); extern prototype_simple_loopfilter(vp8_loop_filter_bhs_sse2); - - -#if !CONFIG_RUNTIME_CPU_DETECT -#undef vp8_lf_normal_mb_v -#define vp8_lf_normal_mb_v vp8_loop_filter_mbv_sse2 - -#undef vp8_lf_normal_b_v -#define vp8_lf_normal_b_v vp8_loop_filter_bv_sse2 - -#undef vp8_lf_normal_mb_h -#define vp8_lf_normal_mb_h vp8_loop_filter_mbh_sse2 - -#undef vp8_lf_normal_b_h -#define vp8_lf_normal_b_h vp8_loop_filter_bh_sse2 - -#undef vp8_lf_simple_mb_v -#define vp8_lf_simple_mb_v vp8_loop_filter_simple_vertical_edge_sse2 - -#undef vp8_lf_simple_b_v -#define vp8_lf_simple_b_v vp8_loop_filter_bvs_sse2 - -#undef vp8_lf_simple_mb_h -#define vp8_lf_simple_mb_h vp8_loop_filter_simple_horizontal_edge_sse2 - -#undef vp8_lf_simple_b_h -#define vp8_lf_simple_b_h vp8_loop_filter_bhs_sse2 -#endif #endif diff --git a/vp8/common/x86/x86_systemdependent.c b/vp8/common/x86/x86_systemdependent.c index 5618cd7a3..b6d058fbf 100644 --- a/vp8/common/x86/x86_systemdependent.c +++ b/vp8/common/x86/x86_systemdependent.c @@ -51,15 +51,6 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) { rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_mmx; rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_mmx; - rtcd->loopfilter.normal_mb_v = vp8_loop_filter_mbv_mmx; - rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_mmx; - rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_mmx; - rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_mmx; - rtcd->loopfilter.simple_mb_v = vp8_loop_filter_simple_vertical_edge_mmx; - rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_mmx; - rtcd->loopfilter.simple_mb_h = vp8_loop_filter_simple_horizontal_edge_mmx; - rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_mmx; - #if CONFIG_POSTPROC rtcd->postproc.down = vp8_mbpost_proc_down_mmx; /*rtcd->postproc.across = vp8_mbpost_proc_across_ip_c;*/ @@ -84,15 +75,6 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) { rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_sse2; rtcd->subpix.bilinear8x8 = vp8_bilinear_predict8x8_sse2; - rtcd->loopfilter.normal_mb_v = vp8_loop_filter_mbv_sse2; - rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_sse2; - rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_sse2; - rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_sse2; - rtcd->loopfilter.simple_mb_v = vp8_loop_filter_simple_vertical_edge_sse2; - rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_sse2; - rtcd->loopfilter.simple_mb_h = vp8_loop_filter_simple_horizontal_edge_sse2; - rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_sse2; - #if CONFIG_POSTPROC rtcd->postproc.down = vp8_mbpost_proc_down_xmm; rtcd->postproc.across = vp8_mbpost_proc_across_ip_xmm; |