diff options
Diffstat (limited to 'vp8/common/x86')
-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/recon_wrapper_sse2.c | 3 | ||||
-rw-r--r-- | vp8/common/x86/recon_x86.h | 81 | ||||
-rw-r--r-- | vp8/common/x86/x86_systemdependent.c | 31 |
5 files changed, 9 insertions, 176 deletions
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/recon_wrapper_sse2.c b/vp8/common/x86/recon_wrapper_sse2.c index e304d055b..681aff81e 100644 --- a/vp8/common/x86/recon_wrapper_sse2.c +++ b/vp8/common/x86/recon_wrapper_sse2.c @@ -9,9 +9,8 @@ */ #include "vpx_ports/config.h" -#include "vp8/common/recon.h" -#include "recon_x86.h" #include "vpx_mem/vpx_mem.h" +#include "vp8/common/blockd.h" #define build_intra_predictors_mbuv_prototype(sym) \ void sym(unsigned char *dst, int dst_stride, \ diff --git a/vp8/common/x86/recon_x86.h b/vp8/common/x86/recon_x86.h deleted file mode 100644 index c0180cc56..000000000 --- a/vp8/common/x86/recon_x86.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2010 The WebM project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - - -#ifndef RECON_X86_H -#define RECON_X86_H - -/* Note: - * - * This platform is commonly built for runtime CPU detection. If you modify - * any of the function mappings present in this file, be sure to also update - * them in the function pointer initialization code - */ - -#if HAVE_MMX -extern prototype_recon_block(vp8_recon_b_mmx); -extern prototype_copy_block(vp8_copy_mem8x8_mmx); -extern prototype_copy_block(vp8_copy_mem8x4_mmx); -extern prototype_copy_block(vp8_copy_mem16x16_mmx); - - -#if !CONFIG_RUNTIME_CPU_DETECT -#undef vp8_recon_recon -#define vp8_recon_recon vp8_recon_b_mmx - -#undef vp8_recon_copy8x8 -#define vp8_recon_copy8x8 vp8_copy_mem8x8_mmx - -#undef vp8_recon_copy8x4 -#define vp8_recon_copy8x4 vp8_copy_mem8x4_mmx - -#endif -#endif - -#if HAVE_SSE2 -extern prototype_recon_block(vp8_recon2b_sse2); -extern prototype_recon_block(vp8_recon4b_sse2); -extern prototype_copy_block(vp8_copy_mem16x16_sse2); -extern prototype_build_intra_predictors(vp8_build_intra_predictors_mbuv_sse2); -extern prototype_build_intra_predictors(vp8_build_intra_predictors_mbuv_s_sse2); - -#if !CONFIG_RUNTIME_CPU_DETECT -#undef vp8_recon_recon2 -#define vp8_recon_recon2 vp8_recon2b_sse2 - -#undef vp8_recon_recon4 -#define vp8_recon_recon4 vp8_recon4b_sse2 - -#undef vp8_recon_copy16x16 -#define vp8_recon_copy16x16 vp8_copy_mem16x16_sse2 - -#undef vp8_recon_build_intra_predictors_mbuv -#define vp8_recon_build_intra_predictors_mbuv vp8_build_intra_predictors_mbuv_sse2 - -#undef vp8_recon_build_intra_predictors_mbuv_s -#define vp8_recon_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_sse2 - -#endif -#endif - -#if HAVE_SSSE3 -extern prototype_build_intra_predictors(vp8_build_intra_predictors_mbuv_ssse3); -extern prototype_build_intra_predictors(vp8_build_intra_predictors_mbuv_s_ssse3); - -#if !CONFIG_RUNTIME_CPU_DETECT -#undef vp8_recon_build_intra_predictors_mbuv -#define vp8_recon_build_intra_predictors_mbuv vp8_build_intra_predictors_mbuv_ssse3 - -#undef vp8_recon_build_intra_predictors_mbuv_s -#define vp8_recon_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_ssse3 - -#endif -#endif -#endif diff --git a/vp8/common/x86/x86_systemdependent.c b/vp8/common/x86/x86_systemdependent.c index c50778521..b6d058fbf 100644 --- a/vp8/common/x86/x86_systemdependent.c +++ b/vp8/common/x86/x86_systemdependent.c @@ -14,7 +14,6 @@ #include "vp8/common/g_common.h" #include "vp8/common/subpixel.h" #include "vp8/common/loopfilter.h" -#include "vp8/common/recon.h" #include "vp8/common/idct.h" #include "vp8/common/pragmas.h" #include "vp8/common/onyxc_int.h" @@ -41,10 +40,6 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) { // rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_mmx; // rtcd->idct.iwalsh1 = vp8_short_inv_walsh4x4_1_mmx; - rtcd->recon.recon = vp8_recon_b_mmx; - rtcd->recon.copy8x8 = vp8_copy_mem8x8_mmx; - rtcd->recon.copy8x4 = vp8_copy_mem8x4_mmx; - /* Disabled due to unsupported enhanced interpolation/high_prec mv rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_mmx; rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_mmx; @@ -56,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;*/ @@ -77,15 +63,7 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) { #if HAVE_SSE2 if (flags & HAS_SSE2) { - rtcd->recon.recon2 = vp8_recon2b_sse2; - rtcd->recon.recon4 = vp8_recon4b_sse2; - /* these are disable because of unsupported diagonal pred modes - rtcd->recon.build_intra_predictors_mbuv = - vp8_build_intra_predictors_mbuv_sse2; - rtcd->recon.build_intra_predictors_mbuv_s = - vp8_build_intra_predictors_mbuv_s_sse2; - */ // rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_sse2; @@ -97,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; |