]> granicus.if.org Git - libvpx/commitdiff
Removed the loopfilter rtcd invoke macro code
authorScott LaVarnway <slavarnway@google.com>
Tue, 16 Oct 2012 23:19:35 +0000 (16:19 -0700)
committerScott LaVarnway <slavarnway@google.com>
Tue, 16 Oct 2012 23:19:35 +0000 (16:19 -0700)
Change-Id: I446b2ffcbe732ffb112dbd97a4799272d4c01a84

vp8/common/arm/arm_systemdependent.c
vp8/common/arm/loopfilter_arm.h
vp8/common/generic/systemdependent.c
vp8/common/loopfilter.c
vp8/common/loopfilter.h
vp8/common/loopfilter_filters.c
vp8/common/onyxc_int.h
vp8/common/rtcd_defs.sh
vp8/common/x86/loopfilter_x86.c
vp8/common/x86/loopfilter_x86.h
vp8/common/x86/x86_systemdependent.c

index 5fd5f5b1b6780c0788883abfca5fae33ddeba1cf..65a5181883675453e401cf1593204256a521a45f 100644 (file)
@@ -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;
index 390a547b0776143bf7023043bcf38856a52df523..5df2a181bd75f0f02fe53e0803fe878df30780ef 100644 (file)
@@ -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 */
index 363ad098a0c6ba6f1ee77b63bc28313cbcadd514..0acae30f5d862d7271b90b8df7d4c98505db7b19 100644 (file)
@@ -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;
index 5937f6c06a4938993c00f2f56a0c6cd1def5562c..b34ee0272b895c9037fa5625c0b11b8e222e8928 100644 (file)
 
 #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]);
         }
       }
 
index b2ba95d5f328c5661b4b59df7f84c575e55062cf..df78b8c12fce253f512fcaeee759621c97bbcdcc 100644 (file)
@@ -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 */
index ef69ffecc6a274cc9f5cb6d1c11bbd35fc331932..3f97d210110582a7797bb24c734b88a3ee1cfc54 100644 (file)
@@ -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);
+}
index e99f69bdc8274c6384e5fbd42875dfdc731b4c5f..0396a70870cb47db892dbb9c20aa286b47c4c060 100644 (file)
@@ -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
index 2477963562425221607e3477f9658aeb50d6208e..ef272df9025a887f982bb9d96c1237b503431d60 100644 (file)
@@ -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
+
index add8888358c771dc8b6b12e1d44592a2a93a5653..e7239818e74900fc7437c97cea102ccb44819149 100644 (file)
@@ -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);
index 1ed6c213f2f4184ff11cff26e3a75d841f769ff1..3cbea8f0447e9ec4237b4276ab85a1fcd592a222 100644 (file)
@@ -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
 
 
index 5618cd7a37c72609e4beadcaa6be1b053a836a06..b6d058fbfcfdb3324d208989e000a0ddfe037109 100644 (file)
@@ -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;