Merging and bug-fix in enhanced_interp experiment
authorDeb Mukherjee <debargha@google.com>
Sat, 28 Jul 2012 00:46:33 +0000 (17:46 -0700)
committerDeb Mukherjee <debargha@google.com>
Tue, 31 Jul 2012 18:45:31 +0000 (11:45 -0700)
Merged the enhanced_interp experiment.
Found and fixed a bug in the include files framework, whereby
certain encoder files were still using the old INTERP_EXTEND
value of 3 instead of 4. The thresholds for mv range mcomp.c
need a small adjustment to prevent crashes.

The results are more or less unchanged.

Change-Id: Iac5008390f1efc97ce1102fbb5f8989c847fb579

14 files changed:
configure
vp8/common/blockd.h
vp8/common/filter.c
vp8/common/generic/systemdependent.c
vp8/common/reconinter.c
vp8/common/subpixel.h
vp8/common/x86/x86_systemdependent.c
vp8/decoder/decodframe.c
vp8/encoder/bitstream.c
vp8/encoder/mcomp.c
vp8/encoder/onyx_if.c
vp8/encoder/onyx_int.h
vpx_scale/arm/scalesystemdependent.c
vpx_scale/yv12config.h

index 525ccd1..d001715 100755 (executable)
--- a/configure
+++ b/configure
@@ -215,13 +215,11 @@ HAVE_LIST="
 "
 EXPERIMENT_LIST="
     csm
-    enhanced_interp
     featureupdates
     high_precision_mv
     sixteenth_subpel_uv
     comp_intra_pred
     superblocks
-    newintramodes
     pred_filter
     lossless
     hybridtransform
index 1bbaa64..ccd1d46 100644 (file)
@@ -80,13 +80,11 @@ typedef enum
 {
   SIXTAP   = 0,
   BILINEAR = 1,
-#if CONFIG_ENHANCED_INTERP
   EIGHTTAP = 2,
   EIGHTTAP_SHARP = 3,
 #if CONFIG_SWITCHABLE_INTERP
   SWITCHABLE  /* should be the last one */
 #endif
-#endif
 } INTERPOLATIONFILTERTYPE;
 
 #if 0//CONFIG_SWITCHABLE_INTERP
index 78c2390..1a58234 100644 (file)
@@ -43,11 +43,10 @@ DECLARE_ALIGNED(16, const short, vp8_bilinear_filters[SUBPEL_SHIFTS][2]) = {
 #endif  /* SUBPEL_SHIFTS==16 */
 };
 
-#if CONFIG_ENHANCED_INTERP
-
 #define FILTER_ALPHA       0
 #define FILTER_ALPHA_SHARP 1
-DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8[SUBPEL_SHIFTS][2 * INTERP_EXTEND]) = {
+DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8[SUBPEL_SHIFTS][8]) = {
+
 #if SUBPEL_SHIFTS==16
 #if FILTER_ALPHA == 0
   /* Lagrangian interpolation filter */
@@ -116,7 +115,7 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8[SUBPEL_SHIFTS][2 * INTERP
 #endif  /* SUBPEL_SHIFTS==16 */
 };
 
-DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTERP_EXTEND]) = {
+DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][8]) = {
 #if SUBPEL_SHIFTS==16
 #if FILTER_ALPHA_SHARP == 1
   /* dct based filter */
@@ -137,6 +136,7 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTER
   {-1,   3,  -6,  17, 125, -13,   5, -2},
   {0,   1,  -3,   8, 127,  -7,   3, -1}
 #elif FILTER_ALPHA_SHARP == 75
+  /* alpha = 0.75 */
   {0,   0,   0, 128,   0,   0,   0, 0},
   {-1,   2,  -6, 126,   9,  -3,   2, -1},
   {-1,   4, -11, 123,  18,  -7,   3, -1},
@@ -174,6 +174,7 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTER
 #endif  /* FILTER_ALPHA_SHARP */
 #else   /* SUBPEL_SHIFTS==16 */
 #if FILTER_ALPHA_SHARP == 1
+  /* dct based filter */
   {0,   0,   0, 128,   0,   0,   0, 0},
   {-2,   5, -13, 125,  17,  -6,   3, -1},
   {-4,   9, -20, 115,  37, -13,   6, -2},
@@ -183,6 +184,7 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTER
   {-2,   6, -13,  37, 115, -20,   9, -4},
   {-1,   3,  -6,  17, 125, -13,   5, -2}
 #elif FILTER_ALPHA_SHARP == 75
+  /* alpha = 0.75 */
   {0,   0,   0, 128,   0,   0,   0, 0},
   {-1,   4, -11, 123,  18,  -7,   3, -1},
   {-2,   7, -19, 113,  38, -13,   6, -2},
@@ -205,8 +207,6 @@ DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_8s[SUBPEL_SHIFTS][2 * INTER
 #endif  /* SUBPEL_SHIFTS==16 */
 };
 
-#endif  // CONFIG_ENHANCED_INTERP
-
 DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_6[SUBPEL_SHIFTS][6]) = {
 #if SUBPEL_SHIFTS==16
   {0,   0, 128,   0,   0, 0},
@@ -590,8 +590,6 @@ void vp8_sixtap_predict_avg16x16_c
                                    16, 16, 16, 16, VFilter);
 }
 
-#if CONFIG_ENHANCED_INTERP
-
 #undef Interp_Extend
 #define Interp_Extend 4
 
@@ -1148,8 +1146,6 @@ void vp8_eighttap_predict_avg16x16_sharp_c
                                    16, 16, 16, 16, VFilter);
 }
 
-#endif  /* CONFIG_ENHANCED_INTERP */
-
 /****************************************************************************
  *
  *  ROUTINE       : filter_block2d_bil_first_pass
index df16223..4414263 100644 (file)
@@ -78,7 +78,6 @@ void vp8_machine_specific_config(VP8_COMMON *ctx) {
     vp8_comp_intra_uv4x4_predict;
 #endif
 
-#if CONFIG_ENHANCED_INTERP
   rtcd->subpix.eighttap16x16       = vp8_eighttap_predict16x16_c;
   rtcd->subpix.eighttap8x8         = vp8_eighttap_predict8x8_c;
   rtcd->subpix.eighttap_avg16x16   = vp8_eighttap_predict_avg16x16_c;
@@ -93,7 +92,7 @@ void vp8_machine_specific_config(VP8_COMMON *ctx) {
   rtcd->subpix.eighttap_avg4x4_sharp     = vp8_eighttap_predict_avg4x4_sharp_c;
   rtcd->subpix.eighttap8x4_sharp         = vp8_eighttap_predict8x4_sharp_c;
   rtcd->subpix.eighttap4x4_sharp         = vp8_eighttap_predict_sharp_c;
-#endif
+
   rtcd->subpix.sixtap16x16       = vp8_sixtap_predict16x16_c;
   rtcd->subpix.sixtap8x8         = vp8_sixtap_predict8x8_c;
   rtcd->subpix.sixtap_avg16x16   = vp8_sixtap_predict_avg16x16_c;
index 6f7d963..4a828cd 100644 (file)
@@ -38,7 +38,6 @@ void vp8_setup_interp_filters(MACROBLOCKD *xd,
     xd->subpixel_predict_avg16x16 = SUBPIX_INVOKE(
         &cm->rtcd.subpix, sixtap_avg16x16);
   }
-#if CONFIG_ENHANCED_INTERP
   else if (mcomp_filter_type == EIGHTTAP
 #if CONFIG_SWITCHABLE_INTERP
            ||
@@ -75,7 +74,6 @@ void vp8_setup_interp_filters(MACROBLOCKD *xd,
     xd->subpixel_predict_avg16x16 = SUBPIX_INVOKE(
         &cm->rtcd.subpix, eighttap_avg16x16_sharp);
   }
-#endif
   else {
     xd->subpixel_predict        = SUBPIX_INVOKE(
         &cm->rtcd.subpix, bilinear4x4);
index c2dae72..3b5b667 100644 (file)
@@ -58,7 +58,6 @@ extern prototype_subpixel_predict(vp8_subpix_sixtap4x4);
 #endif
 extern prototype_subpixel_predict(vp8_subpix_sixtap_avg4x4);
 
-#if CONFIG_ENHANCED_INTERP
 #ifndef vp8_subpix_eighttap16x16
 #define vp8_subpix_eighttap16x16 vp8_eighttap_predict16x16_c
 #endif
@@ -128,7 +127,6 @@ extern prototype_subpixel_predict(vp8_subpix_eighttap4x4_sharp);
 #define vp8_subpix_eighttap_avg4x4_sharp vp8_eighttap_predict_avg4x4_sharp_c
 #endif
 extern prototype_subpixel_predict(vp8_subpix_eighttap_avg4x4_sharp);
-#endif  /* CONFIG_ENAHNCED_INTERP */
 
 #ifndef vp8_subpix_bilinear16x16
 #define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_c
@@ -167,7 +165,6 @@ extern prototype_subpixel_predict(vp8_subpix_bilinear_avg4x4);
 
 typedef prototype_subpixel_predict((*vp8_subpix_fn_t));
 typedef struct {
-#if CONFIG_ENHANCED_INTERP
   vp8_subpix_fn_t  eighttap16x16;
   vp8_subpix_fn_t  eighttap8x8;
   vp8_subpix_fn_t  eighttap_avg16x16;
@@ -182,7 +179,6 @@ typedef struct {
   vp8_subpix_fn_t  eighttap_avg4x4_sharp;
   vp8_subpix_fn_t  eighttap8x4_sharp;
   vp8_subpix_fn_t  eighttap4x4_sharp;
-#endif
   vp8_subpix_fn_t  sixtap16x16;
   vp8_subpix_fn_t  sixtap8x8;
   vp8_subpix_fn_t  sixtap_avg16x16;
index d60442f..2c66d9f 100644 (file)
@@ -46,12 +46,12 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
     rtcd->recon.copy8x4     = vp8_copy_mem8x4_mmx;
     rtcd->recon.copy16x16   = vp8_copy_mem16x16_mmx;
 
-#if CONFIG_ENHANCED_INTERP == 0 && CONFIG_HIGH_PRECISION_MV == 0 && CONFIG_SIXTEENTH_SUBPEL_UV == 0
+    /* Disabled due to unsupported enhanced interpolation/high_prec mv
     rtcd->subpix.sixtap16x16   = vp8_sixtap_predict16x16_mmx;
     rtcd->subpix.sixtap8x8     = vp8_sixtap_predict8x8_mmx;
     rtcd->subpix.sixtap8x4     = vp8_sixtap_predict8x4_mmx;
     rtcd->subpix.sixtap4x4     = vp8_sixtap_predict4x4_mmx;
-#endif
+    */
     rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_mmx;
     rtcd->subpix.bilinear8x8   = vp8_bilinear_predict8x8_mmx;
     rtcd->subpix.bilinear8x4   = vp8_bilinear_predict8x4_mmx;
@@ -91,11 +91,11 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
 
     // rtcd->idct.iwalsh16     = vp8_short_inv_walsh4x4_sse2;
 
-#if CONFIG_ENHANCED_INTERP == 0 && CONFIG_HIGH_PRECISION_MV == 0 && CONFIG_SIXTEENTH_SUBPEL_UV == 0
+    /* Disabled due to unsupported enhanced interpolation/high_prec mv
     rtcd->subpix.sixtap16x16   = vp8_sixtap_predict16x16_sse2;
     rtcd->subpix.sixtap8x8     = vp8_sixtap_predict8x8_sse2;
     rtcd->subpix.sixtap8x4     = vp8_sixtap_predict8x4_sse2;
-#endif
+    */
     rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_sse2;
     rtcd->subpix.bilinear8x8   = vp8_bilinear_predict8x8_sse2;
 
@@ -121,14 +121,14 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx) {
 #if HAVE_SSSE3
 
   if (flags & HAS_SSSE3) {
-#if CONFIG_ENHANCED_INTERP == 0 && CONFIG_HIGH_PRECISION_MV == 0 && CONFIG_SIXTEENTH_SUBPEL_UV == 0
+    /* Disabled due to unsupported enhanced interpolation/high_prec mv
     rtcd->subpix.sixtap16x16   = vp8_sixtap_predict16x16_ssse3;
     rtcd->subpix.sixtap8x8     = vp8_sixtap_predict8x8_ssse3;
     rtcd->subpix.sixtap8x4     = vp8_sixtap_predict8x4_ssse3;
     rtcd->subpix.sixtap4x4     = vp8_sixtap_predict4x4_ssse3;
     rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_ssse3;
     rtcd->subpix.bilinear8x8   = vp8_bilinear_predict8x8_ssse3;
-#endif
+    */
 
     /* these are disable because of unsupported diagonal pred modes
     rtcd->recon.build_intra_predictors_mbuv =
index c31595d..2d91b3c 100644 (file)
@@ -746,15 +746,11 @@ static void init_frame(VP8D_COMP *pbi) {
   } else {
 
     if (!pc->use_bilinear_mc_filter)
-#if CONFIG_ENHANCED_INTERP
       pc->mcomp_filter_type = EIGHTTAP;
-#else
-      pc->mcomp_filter_type = SIXTAP;
-#endif
     else
       pc->mcomp_filter_type = BILINEAR;
 
-    /* To enable choice of different interploation filters */
+    /* To enable choice of different interpolation filters */
     vp8_setup_interp_filters(xd, pc->mcomp_filter_type, pc);
   }
 
@@ -1226,7 +1222,6 @@ int vp8_decode_frame(VP8D_COMP *pbi) {
     /* Is high precision mv allowed */
     xd->allow_high_precision_mv = (unsigned char)vp8_read_bit(bc);
 #endif
-#if CONFIG_ENHANCED_INTERP
     // Read the type of subpel filter to use
 #if CONFIG_SWITCHABLE_INTERP
     if (vp8_read_bit(bc)) {
@@ -1238,7 +1233,6 @@ int vp8_decode_frame(VP8D_COMP *pbi) {
     }
     /* To enable choice of different interploation filters */
     vp8_setup_interp_filters(xd, pc->mcomp_filter_type, pc);
-#endif
   }
 
   pc->refresh_entropy_probs = vp8_read_bit(bc);
index 97e791b..f42a2e6 100644 (file)
@@ -2273,7 +2273,6 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
     // Signal whether to allow high MV precision
     vp8_write_bit(bc, (xd->allow_high_precision_mv) ? 1 : 0);
 #endif
-#if CONFIG_ENHANCED_INTERP
 #if CONFIG_SWITCHABLE_INTERP
     if (pc->mcomp_filter_type == SWITCHABLE) {
       /* Check to see if only one of the filters is actually used */
@@ -2301,7 +2300,6 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
     if (pc->mcomp_filter_type != SWITCHABLE)
 #endif  /* CONFIG_SWITCHABLE_INTERP */
       vp8_write_literal(bc, (pc->mcomp_filter_type), 2);
-#endif  /* CONFIG_ENHANCED_INTERP */
   }
 
   vp8_write_bit(bc, pc->refresh_entropy_probs);
index 0b08ed3..891b479 100644 (file)
@@ -257,10 +257,14 @@ int vp8_find_best_sub_pixel_step_iteratively(MACROBLOCK *x, BLOCK *b, BLOCKD *d,
   int buf_r1, buf_r2, buf_c1, buf_c2;
 
   // Clamping to avoid out-of-range data access
-  buf_r1 = ((bestmv->as_mv.row - INTERP_EXTEND) < x->mv_row_min) ? (bestmv->as_mv.row - x->mv_row_min) : INTERP_EXTEND;
-  buf_r2 = ((bestmv->as_mv.row + INTERP_EXTEND) > x->mv_row_max) ? (x->mv_row_max - bestmv->as_mv.row) : INTERP_EXTEND;
-  buf_c1 = ((bestmv->as_mv.col - INTERP_EXTEND) < x->mv_col_min) ? (bestmv->as_mv.col - x->mv_col_min) : INTERP_EXTEND;
-  buf_c2 = ((bestmv->as_mv.col + INTERP_EXTEND) > x->mv_col_max) ? (x->mv_col_max - bestmv->as_mv.col) : INTERP_EXTEND;
+  buf_r1 = ((bestmv->as_mv.row - INTERP_EXTEND) < x->mv_row_min) ?
+      (bestmv->as_mv.row - x->mv_row_min) : INTERP_EXTEND - 1;
+  buf_r2 = ((bestmv->as_mv.row + INTERP_EXTEND) > x->mv_row_max) ?
+      (x->mv_row_max - bestmv->as_mv.row) : INTERP_EXTEND - 1;
+  buf_c1 = ((bestmv->as_mv.col - INTERP_EXTEND) < x->mv_col_min) ?
+      (bestmv->as_mv.col - x->mv_col_min) : INTERP_EXTEND - 1;
+  buf_c2 = ((bestmv->as_mv.col + INTERP_EXTEND) > x->mv_col_max) ?
+      (x->mv_col_max - bestmv->as_mv.col) : INTERP_EXTEND - 1;
   y_stride = 32;
 
   /* Copy to intermediate buffer before searching. */
index 5b6684a..95a32e2 100644 (file)
@@ -81,17 +81,19 @@ static void set_default_lf_deltas(VP8_COMP *cpi);
 
 extern const int vp8_gf_interval_table[101];
 
-#if CONFIG_ENHANCED_INTERP
-#define SEARCH_BEST_FILTER 0            /* to search for best filter */
+#define SEARCH_BEST_FILTER 0            /* to search exhaustively for
+                                           best filter */
 #define RESET_FOREACH_FILTER 0          /* whether to reset the encoder state
-                                         * before trying each new filter */
-#define SHARP_FILTER_QTHRESH 0         /* Q threshold for 8-tap sharp filter */
-#endif
+                                           before trying each new filter */
+#define SHARP_FILTER_QTHRESH 0          /* Q threshold for 8-tap sharp filter */
+
 #if CONFIG_HIGH_PRECISION_MV
-#define ALTREF_HIGH_PRECISION_MV 1      /* whether to use high precision mv for altref computation */
-#define HIGH_PRECISION_MV_QTHRESH 200   /* Q threshold for use of high precision mv
-                                         * Choose a very high value for now so
-                                         * that HIGH_PRECISION is always chosen */
+#define ALTREF_HIGH_PRECISION_MV 1      /* whether to use high precision mv
+                                           for altref computation */
+#define HIGH_PRECISION_MV_QTHRESH 200   /* Q threshold for use of high precision
+                                           mv. Choose a very high value for
+                                           now so that HIGH_PRECISION is always
+                                           chosen */
 #endif
 
 #if CONFIG_INTERNAL_STATS
@@ -778,9 +780,7 @@ void vp8_set_speed_features(VP8_COMP *cpi) {
 
       sf->first_step = 0;
       sf->max_step_search_steps = MAX_MVSEARCH_STEPS;
-#if CONFIG_ENHANCED_INTERP
       sf->search_best_filter = SEARCH_BEST_FILTER;
-#endif
       break;
     case 1:
 #if CONFIG_PRED_FILTER
@@ -1586,11 +1586,7 @@ void vp8_change_config(VP8_PTR ptr, VP8_CONFIG *oxcf) {
   cpi->cq_target_quality = cpi->oxcf.cq_level;
 
   if (!cm->use_bilinear_mc_filter)
-#if CONFIG_ENHANCED_INTERP
     cm->mcomp_filter_type = EIGHTTAP;
-#else
-    cm->mcomp_filter_type = SIXTAP;
-#endif
   else
     cm->mcomp_filter_type = BILINEAR;
 
@@ -2895,7 +2891,6 @@ static void encode_frame_to_data_rate
 
   int loop_size_estimate = 0;
 
-#if CONFIG_ENHANCED_INTERP
   SPEED_FEATURES *sf = &cpi->sf;
 #if RESET_FOREACH_FILTER
   int q_low0;
@@ -2921,7 +2916,6 @@ static void encode_frame_to_data_rate
   int mcomp_filters = sizeof(mcomp_filters_to_search) / sizeof(*mcomp_filters_to_search);
   int mcomp_filter_index = 0;
   INT64 mcomp_filter_cost[4];
-#endif
 
   // Clear down mmx registers to allow floating point in what follows
   vp8_clear_system_state();
@@ -3137,9 +3131,7 @@ static void encode_frame_to_data_rate
 
   loop_count = 0;
 
-#if CONFIG_HIGH_PRECISION_MV || CONFIG_ENHANCED_INTERP
   if (cm->frame_type != KEY_FRAME) {
-#if CONFIG_ENHANCED_INTERP
     /* TODO: Decide this more intelligently */
     if (sf->search_best_filter) {
       cm->mcomp_filter_type = mcomp_filters_to_search[0];
@@ -3152,13 +3144,11 @@ static void encode_frame_to_data_rate
           (Q < SHARP_FILTER_QTHRESH ? EIGHTTAP_SHARP : EIGHTTAP);
 #endif
     }
-#endif
 #if CONFIG_HIGH_PRECISION_MV
     /* TODO: Decide this more intelligently */
     xd->allow_high_precision_mv = (Q < HIGH_PRECISION_MV_QTHRESH);
 #endif
   }
-#endif
 
 #if CONFIG_POSTPROC
 
@@ -3206,7 +3196,7 @@ static void encode_frame_to_data_rate
   vp8_write_yuv_frame(cpi->Source);
 #endif
 
-#if CONFIG_ENHANCED_INTERP && RESET_FOREACH_FILTER
+#if RESET_FOREACH_FILTER
   if (sf->search_best_filter) {
     q_low0 = q_low;
     q_high0 = q_high;
@@ -3468,7 +3458,7 @@ static void encode_frame_to_data_rate
     if (cpi->is_src_frame_alt_ref)
       Loop = FALSE;
 
-#if CONFIG_ENHANCED_INTERP && CONFIG_SWITCHABLE_INTERP
+#if CONFIG_SWITCHABLE_INTERP
     if (cm->frame_type != KEY_FRAME &&
         !sf->search_best_filter &&
         cm->mcomp_filter_type == SWITCHABLE) {
@@ -3502,7 +3492,6 @@ static void encode_frame_to_data_rate
     }
 #endif
 
-#if CONFIG_ENHANCED_INTERP
     if (Loop == FALSE && cm->frame_type != KEY_FRAME && sf->search_best_filter) {
       if (mcomp_filter_index < mcomp_filters) {
         INT64 err = vp8_calc_ss_err(cpi->Source,
@@ -3555,7 +3544,6 @@ static void encode_frame_to_data_rate
 #endif
       }
     }
-#endif  /* CONFIG_ENHANCED_INTERP */
 
     if (Loop == TRUE) {
       loop_count++;
index 2821aad..ef68122 100644 (file)
@@ -317,9 +317,7 @@ typedef struct {
   int optimize_coefficients;
   int no_skip_block4x4_search;
   int improved_mv_pred;
-#if CONFIG_ENHANCED_INTERP
   int search_best_filter;
-#endif
 
 } SPEED_FEATURES;
 
index 5c19d61..d168d05 100644 (file)
@@ -87,9 +87,11 @@ void vp8_scale_machine_specific_config() {
   if (flags & HAS_NEON)
 #endif
   {
+#if VP8BORDERINPIXELS == 32
     vp8_yv12_extend_frame_borders_ptr = vp8_yv12_extend_frame_borders_neon;
     vp8_yv12_copy_frame_yonly_ptr     = vp8_yv12_copy_frame_yonly_neon;
     vp8_yv12_copy_frame_ptr           = vp8_yv12_copy_frame_neon;
+#endif
   }
 #endif
 }
index 1c18b09..83523e2 100644 (file)
@@ -11,6 +11,9 @@
 
 #ifndef YV12_CONFIG_H
 #define YV12_CONFIG_H
+
+#include "vpx_config.h"
+
 #ifdef __cplusplus
 extern "C"
 {
@@ -18,13 +21,8 @@ extern "C"
 
 #define VP7BORDERINPIXELS       48
 
-#if CONFIG_ENHANCED_INTERP
 #define VP8BORDERINPIXELS       64
 #define INTERP_EXTEND            4
-#else
-#define VP8BORDERINPIXELS       32
-#define INTERP_EXTEND            3
-#endif
 
   /*************************************
    For INT_YUV: