Enable altref2 by default and merge it into ext-refs

Change-Id: Ie67266538db41c6aa7d79a5c270c26c021583c48
diff --git a/av1/common/av1_loopfilter.h b/av1/common/av1_loopfilter.h
index 1c0de80..6701e97 100644
--- a/av1/common/av1_loopfilter.h
+++ b/av1/common/av1_loopfilter.h
@@ -51,8 +51,7 @@
   uint8_t mode_ref_delta_update;
 
   // 0 = Intra, Last, Last2+Last3(CONFIG_EXT_REFS),
-  // GF, BRF(CONFIG_EXT_REFS),
-  // ARF2(CONFIG_EXT_REFS+CONFIG_ALTREF2), ARF
+  // GF, BRF(CONFIG_EXT_REFS), ARF2(CONFIG_EXT_REFS), ARF
   int8_t ref_deltas[TOTAL_REFS_PER_FRAME];
   int8_t last_ref_deltas[TOTAL_REFS_PER_FRAME];
 
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index 88ce494..33a7a27 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -1413,20 +1413,12 @@
 };
 
 static const aom_prob default_comp_bwdref_p[REF_CONTEXTS][BWD_REFS - 1] = {
-#if CONFIG_ALTREF2
   // TODO(zoeliu): ALTREF2 to work with NEW_MULTISYMBOL.
   { 50, 50 },
   { 130, 130 },
   { 210, 210 },
   { 128, 128 },
   { 128, 128 }
-#else  // !CONFIG_ALTREF2
-#if !CONFIG_EXT_COMP_REFS
-  { 16 }, { 74 }, { 142 }, { 170 }, { 247 }
-#else   // CONFIG_EXT_COMP_REFS
-  { 7 }, { 56 }, { 29 }, { 230 }, { 220 }
-#endif  // CONFIG_EXT_COMP_REFS
-#endif  // CONFIG_ALTREF2
 };
 
 #if CONFIG_NEW_MULTISYMBOL
@@ -1469,19 +1461,16 @@
 
 static const aom_cdf_prob
     default_comp_bwdref_cdf[REF_CONTEXTS][BWD_REFS - 1][CDF_SIZE(2)] = {
-#if !CONFIG_EXT_COMP_REFS
-      { { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 } }
-#else   // CONFIG_EXT_COMP_REFS
-      { { AOM_ICDF(7 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(56 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(29 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(230 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(220 * 128), AOM_ICDF(32768), 0 } }
-#endif  // !CONFIG_EXT_COMP_REFS
+      { { AOM_ICDF(50 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(50 * 128), AOM_ICDF(32768), 0 } },
+      { { AOM_ICDF(130 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(130 * 128), AOM_ICDF(32768), 0 } },
+      { { AOM_ICDF(210 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(210 * 128), AOM_ICDF(32768), 0 } },
+      { { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 } },
+      { { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 } }
     };
 #endif  // CONFIG_NEW_MULTISYMBOL
 
@@ -1504,28 +1493,12 @@
 
 static const aom_prob default_single_ref_p[REF_CONTEXTS][SINGLE_REFS - 1] = {
 #if CONFIG_EXT_REFS
-#if CONFIG_ALTREF2
   // TODO(zoeliu): ALTREF2 to work with NEW_MULTISYMBOL.
   { 33, 50, 16, 16, 16, 50 },
   { 77, 130, 74, 74, 74, 130 },
   { 142, 210, 142, 142, 142, 210 },
   { 172, 128, 170, 170, 170, 128 },
   { 238, 128, 247, 247, 247, 128 }
-#else  // !CONFIG_ALTREF2
-#if !CONFIG_EXT_COMP_REFS
-  { 33, 16, 16, 16, 16 },
-  { 77, 74, 74, 74, 74 },
-  { 142, 142, 142, 142, 142 },
-  { 172, 170, 170, 170, 170 },
-  { 238, 247, 247, 247, 247 }
-#else   // CONFIG_EXT_COMP_REFS
-  { 36, 2, 28, 58, 9 },
-  { 64, 22, 60, 122, 40 },
-  { 153, 69, 126, 179, 71 },
-  { 128, 174, 189, 216, 101 },
-  { 233, 252, 228, 246, 200 }
-#endif  // !CONFIG_EXT_COMP_REFS
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
   { 31, 25 }, { 72, 80 }, { 147, 148 }, { 197, 191 }, { 235, 247 },
 #endif  // CONFIG_EXT_REFS
@@ -1535,59 +1508,36 @@
 static const aom_cdf_prob
     default_single_ref_cdf[REF_CONTEXTS][SINGLE_REFS - 1][CDF_SIZE(2)] = {
 #if CONFIG_EXT_REFS
-#if !CONFIG_EXT_COMP_REFS
       { { AOM_ICDF(33 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(50 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(16 * 128), AOM_ICDF(32768), 0 } },
+        { AOM_ICDF(50 * 128), AOM_ICDF(32768), 0 } },
       { { AOM_ICDF(77 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(130 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(74 * 128), AOM_ICDF(32768), 0 } },
+        { AOM_ICDF(130 * 128), AOM_ICDF(32768), 0 } },
       { { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(210 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(142 * 128), AOM_ICDF(32768), 0 } },
+        { AOM_ICDF(210 * 128), AOM_ICDF(32768), 0 } },
       { { AOM_ICDF(172 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(170 * 128), AOM_ICDF(32768), 0 } },
+        { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 } },
       { { AOM_ICDF(238 * 128), AOM_ICDF(32768), 0 },
+        { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(247 * 128), AOM_ICDF(32768), 0 } }
-#else   // CONFIG_EXT_COMP_REFS
-      { { AOM_ICDF(36 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(2 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(28 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(58 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(9 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(64 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(22 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(60 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(122 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(40 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(153 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(69 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(126 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(179 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(71 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(174 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(189 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(216 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(101 * 128), AOM_ICDF(32768), 0 } },
-      { { AOM_ICDF(233 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(252 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(228 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(246 * 128), AOM_ICDF(32768), 0 },
-        { AOM_ICDF(200 * 128), AOM_ICDF(32768), 0 } }
-#endif  // !CONFIG_EXT_COMP_REFS
+        { AOM_ICDF(128 * 128), AOM_ICDF(32768), 0 } }
 #else   // !CONFIG_EXT_REFS
       { { AOM_ICDF(31 * 128), AOM_ICDF(32768), 0 },
         { AOM_ICDF(25 * 128), AOM_ICDF(32768), 0 } },
@@ -5430,9 +5380,9 @@
   lf->ref_deltas[BWDREF_FRAME] = lf->ref_deltas[LAST_FRAME];
 #endif  // CONFIG_EXT_REFS
   lf->ref_deltas[GOLDEN_FRAME] = -1;
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
   lf->ref_deltas[ALTREF2_FRAME] = -1;
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
   lf->ref_deltas[ALTREF_FRAME] = -1;
 
   lf->mode_deltas[0] = 0;
diff --git a/av1/common/enums.h b/av1/common/enums.h
index 6ba32f6..a55d3f7 100644
--- a/av1/common/enums.h
+++ b/av1/common/enums.h
@@ -325,14 +325,9 @@
   AOM_LAST3_FLAG = 1 << 2,
   AOM_GOLD_FLAG = 1 << 3,
   AOM_BWD_FLAG = 1 << 4,
-#if CONFIG_ALTREF2
   AOM_ALT2_FLAG = 1 << 5,
   AOM_ALT_FLAG = 1 << 6,
   AOM_REFFRAME_ALL = (1 << 7) - 1
-#else  // !CONFIG_ALTREF2
-  AOM_ALT_FLAG = 1 << 5,
-  AOM_REFFRAME_ALL = (1 << 6) - 1
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
   AOM_GOLD_FLAG = 1 << 1,
   AOM_ALT_FLAG = 1 << 2,
@@ -631,14 +626,8 @@
 #define LAST3_FRAME 3
 #define GOLDEN_FRAME 4
 #define BWDREF_FRAME 5
-
-#if CONFIG_ALTREF2
 #define ALTREF2_FRAME 6
 #define ALTREF_FRAME 7
-#else  // !CONFIG_ALTREF2
-#define ALTREF_FRAME 6
-#endif  // CONFIG_ALTREF2
-
 #define LAST_REF_FRAMES (LAST3_FRAME - LAST_FRAME + 1)
 #else  // !CONFIG_EXT_REFS
 #define GOLDEN_FRAME 2
diff --git a/av1/common/mvref_common.h b/av1/common/mvref_common.h
index 4d33597..e9e4f2b 100644
--- a/av1/common/mvref_common.h
+++ b/av1/common/mvref_common.h
@@ -302,10 +302,8 @@
   { LAST_FRAME, BWDREF_FRAME },  { LAST2_FRAME, BWDREF_FRAME },
   { LAST3_FRAME, BWDREF_FRAME }, { GOLDEN_FRAME, BWDREF_FRAME },
 
-#if CONFIG_ALTREF2
   { LAST_FRAME, ALTREF2_FRAME },  { LAST2_FRAME, ALTREF2_FRAME },
   { LAST3_FRAME, ALTREF2_FRAME }, { GOLDEN_FRAME, ALTREF2_FRAME },
-#endif  // CONFIG_ALTREF2
 
   { LAST_FRAME, ALTREF_FRAME },  { LAST2_FRAME, ALTREF_FRAME },
   { LAST3_FRAME, ALTREF_FRAME }, { GOLDEN_FRAME, ALTREF_FRAME }
diff --git a/av1/common/onyxc_int.h b/av1/common/onyxc_int.h
index 29690d2..709956d 100644
--- a/av1/common/onyxc_int.h
+++ b/av1/common/onyxc_int.h
@@ -611,9 +611,7 @@
 #define LAST3_IS_VALID(cm) ((cm)->frame_refs[LAST3_FRAME - 1].is_valid)
 #define GOLDEN_IS_VALID(cm) ((cm)->frame_refs[GOLDEN_FRAME - 1].is_valid)
 #define BWDREF_IS_VALID(cm) ((cm)->frame_refs[BWDREF_FRAME - 1].is_valid)
-#if CONFIG_ALTREF2
 #define ALTREF2_IS_VALID(cm) ((cm)->frame_refs[ALTREF2_FRAME - 1].is_valid)
-#endif  // CONFIG_ALTREF2
 #define ALTREF_IS_VALID(cm) ((cm)->frame_refs[ALTREF_FRAME - 1].is_valid)
 
 #define L_OR_L2(cm) (LAST_IS_VALID(cm) || LAST2_IS_VALID(cm))
@@ -624,10 +622,8 @@
 #define L3_OR_G(cm) (LAST3_IS_VALID(cm) || GOLDEN_IS_VALID(cm))
 #define L3_AND_G(cm) (LAST3_IS_VALID(cm) && GOLDEN_IS_VALID(cm))
 
-#if CONFIG_ALTREF2
 #define BWD_OR_ALT2(cm) (BWDREF_IS_VALID(cm) || ALTREF2_IS_VALID(cm))
 #define BWD_AND_ALT2(cm) (BWDREF_IS_VALID(cm) && ALTREF2_IS_VALID(cm))
-#endif  // CONFIG_ALTREF2
 #define BWD_OR_ALT(cm) (BWDREF_IS_VALID(cm) || ALTREF_IS_VALID(cm))
 #define BWD_AND_ALT(cm) (BWDREF_IS_VALID(cm) && ALTREF_IS_VALID(cm))
 #endif  // CONFIG_VAR_REFS
diff --git a/av1/common/pred_common.c b/av1/common/pred_common.c
index 872a207..f941405 100644
--- a/av1/common/pred_common.c
+++ b/av1/common/pred_common.c
@@ -885,8 +885,6 @@
   return pred_context;
 }
 
-#if CONFIG_ALTREF2
-
 // Obtain contexts to signal a reference frame be either BWDREF/ALTREF2, or
 // ALTREF.
 int av1_get_pred_context_brfarf2_or_arf(const MACROBLOCKD *xd) {
@@ -987,132 +985,6 @@
   return av1_get_pred_context_brf_or_arf2(xd);
 }
 
-#else                          // !CONFIG_ALTREF2
-
-// Returns a context number for the given MB prediction signal
-int av1_get_pred_context_comp_bwdref_p(const AV1_COMMON *cm,
-                                       const MACROBLOCKD *xd) {
-  int pred_context;
-  const MB_MODE_INFO *const above_mbmi = xd->above_mbmi;
-  const MB_MODE_INFO *const left_mbmi = xd->left_mbmi;
-  const int above_in_image = xd->up_available;
-  const int left_in_image = xd->left_available;
-
-// Note:
-// The mode info data structure has a one element border above and to the
-// left of the entries corresponding to real macroblocks.
-// The prediction flags in these dummy entries are initialized to 0.
-#if CONFIG_ONE_SIDED_COMPOUND  // No change to bitstream
-  // Code seems to assume that signbias of cm->comp_bwd_ref[0] is always 1
-  const int bwd_ref_sign_idx = 1;
-#else
-  const int bwd_ref_sign_idx = cm->ref_frame_sign_bias[cm->comp_bwd_ref[0]];
-#endif  // CONFIG_ONE_SIDED_COMPOUND
-  const int fwd_ref_sign_idx = !bwd_ref_sign_idx;
-
-  (void)cm;
-
-  if (above_in_image && left_in_image) {  // both edges available
-    const int above_intra = !is_inter_block(above_mbmi);
-    const int left_intra = !is_inter_block(left_mbmi);
-
-    if (above_intra && left_intra) {  // intra/intra (2)
-      pred_context = 2;
-    } else if (above_intra || left_intra) {  // intra/inter
-      const MB_MODE_INFO *edge_mbmi = above_intra ? left_mbmi : above_mbmi;
-
-      if (!has_second_ref(edge_mbmi))  // single pred (1/3)
-        pred_context = 1 + 2 * (edge_mbmi->ref_frame[0] != cm->comp_bwd_ref[1]);
-      else  // comp pred (1/3)
-        pred_context =
-            1 +
-            2 * (edge_mbmi->ref_frame[bwd_ref_sign_idx] != cm->comp_bwd_ref[1]);
-    } else {  // inter/inter
-      const int l_comp = has_second_ref(left_mbmi);
-      const int a_comp = has_second_ref(above_mbmi);
-
-      const MV_REFERENCE_FRAME l_brf =
-          l_comp ? left_mbmi->ref_frame[bwd_ref_sign_idx] : NONE_FRAME;
-      const MV_REFERENCE_FRAME a_brf =
-          a_comp ? above_mbmi->ref_frame[bwd_ref_sign_idx] : NONE_FRAME;
-
-      const MV_REFERENCE_FRAME l_frf =
-          !l_comp ? left_mbmi->ref_frame[0]
-                  : left_mbmi->ref_frame[fwd_ref_sign_idx];
-      const MV_REFERENCE_FRAME a_frf =
-          !a_comp ? above_mbmi->ref_frame[0]
-                  : above_mbmi->ref_frame[fwd_ref_sign_idx];
-
-      if (l_comp && a_comp) {  // comp/comp
-        if (l_brf == a_brf && l_brf == cm->comp_bwd_ref[1]) {
-          pred_context = 0;
-        } else if (l_brf == cm->comp_bwd_ref[1] ||
-                   a_brf == cm->comp_bwd_ref[1]) {
-          pred_context = 1;
-        } else {
-// NOTE: Backward ref should be either BWDREF or ALTREF.
-#if !USE_UNI_COMP_REFS
-          // TODO(zoeliu): To further study the UNIDIR scenario
-          assert(l_brf == a_brf && l_brf != cm->comp_bwd_ref[1]);
-#endif  // !USE_UNI_COMP_REFS
-          pred_context = 3;
-        }
-      } else if (!l_comp && !a_comp) {  // single/single
-        if (l_frf == a_frf && l_frf == cm->comp_bwd_ref[1]) {
-          pred_context = 0;
-        } else if (l_frf == cm->comp_bwd_ref[1] ||
-                   a_frf == cm->comp_bwd_ref[1]) {
-          pred_context = 1;
-        } else if (l_frf == a_frf) {
-          pred_context = 3;
-        } else {
-#if !USE_UNI_COMP_REFS
-          // TODO(zoeliu): To further study the UNIDIR scenario
-          assert(l_frf != a_frf && l_frf != cm->comp_bwd_ref[1] &&
-                 a_frf != cm->comp_bwd_ref[1]);
-#endif  // !USE_UNI_COMP_REFS
-          pred_context = 4;
-        }
-      } else {  // comp/single
-        assert((l_comp && !a_comp) || (!l_comp && a_comp));
-
-        if ((l_comp && l_brf == cm->comp_bwd_ref[1] &&
-             a_frf == cm->comp_bwd_ref[1]) ||
-            (a_comp && a_brf == cm->comp_bwd_ref[1] &&
-             l_frf == cm->comp_bwd_ref[1])) {
-          pred_context = 1;
-        } else if ((l_comp && l_brf == cm->comp_bwd_ref[1]) ||
-                   (a_comp && a_brf == cm->comp_bwd_ref[1]) ||
-                   (!l_comp && l_frf == cm->comp_bwd_ref[1]) ||
-                   (!a_comp && a_frf == cm->comp_bwd_ref[1])) {
-          pred_context = 2;
-        } else {
-          pred_context = 4;
-        }
-      }
-    }
-  } else if (above_in_image || left_in_image) {  // one edge available
-    const MB_MODE_INFO *edge_mbmi = above_in_image ? above_mbmi : left_mbmi;
-
-    if (!is_inter_block(edge_mbmi)) {
-      pred_context = 2;
-    } else {
-      if (has_second_ref(edge_mbmi)) {
-        pred_context =
-            4 * (edge_mbmi->ref_frame[bwd_ref_sign_idx] != cm->comp_bwd_ref[1]);
-      } else {
-        pred_context = 3 * (edge_mbmi->ref_frame[0] != cm->comp_bwd_ref[1]);
-      }
-    }
-  } else {  // no edges available (2)
-    pred_context = 2;
-  }
-  assert(pred_context >= 0 && pred_context < REF_CONTEXTS);
-
-  return pred_context;
-}
-#endif  // CONFIG_ALTREF2
-
 #else  // !CONFIG_EXT_REFS
 
 // Returns a context number for the given MB prediction signal
@@ -1268,96 +1140,7 @@
 // non-ALTREF backward reference frame, knowing that it shall be either of
 // these 2 choices.
 int av1_get_pred_context_single_ref_p2(const MACROBLOCKD *xd) {
-#if CONFIG_ALTREF2
   return av1_get_pred_context_brfarf2_or_arf(xd);
-#else   // !CONFIG_ALTREF2
-  int pred_context;
-  const MB_MODE_INFO *const above_mbmi = xd->above_mbmi;
-  const MB_MODE_INFO *const left_mbmi = xd->left_mbmi;
-  const int has_above = xd->up_available;
-  const int has_left = xd->left_available;
-
-  // Note:
-  // The mode info data structure has a one element border above and to the
-  // left of the entries correpsonding to real macroblocks.
-  // The prediction flags in these dummy entries are initialised to 0.
-  if (has_above && has_left) {  // both edges available
-    const int above_intra = !is_inter_block(above_mbmi);
-    const int left_intra = !is_inter_block(left_mbmi);
-
-    if (above_intra && left_intra) {  // intra/intra
-      pred_context = 2;
-    } else if (above_intra || left_intra) {  // intra/inter or inter/intra
-      const MB_MODE_INFO *edge_mbmi = above_intra ? left_mbmi : above_mbmi;
-      if (!has_second_ref(edge_mbmi)) {  // single
-        if (!CHECK_BACKWARD_REFS(edge_mbmi->ref_frame[0]))
-          pred_context = 3;
-        else
-          pred_context = 4 * (edge_mbmi->ref_frame[0] == BWDREF_FRAME);
-      } else {  // comp
-        pred_context = 1 +
-                       2 * (edge_mbmi->ref_frame[0] == BWDREF_FRAME ||
-                            edge_mbmi->ref_frame[1] == BWDREF_FRAME);
-      }
-    } else {  // inter/inter
-      const int above_has_second = has_second_ref(above_mbmi);
-      const int left_has_second = has_second_ref(left_mbmi);
-      const MV_REFERENCE_FRAME above0 = above_mbmi->ref_frame[0];
-      const MV_REFERENCE_FRAME above1 = above_mbmi->ref_frame[1];
-      const MV_REFERENCE_FRAME left0 = left_mbmi->ref_frame[0];
-      const MV_REFERENCE_FRAME left1 = left_mbmi->ref_frame[1];
-
-      if (above_has_second && left_has_second) {  // comp/comp
-        if (above0 == left0 && above1 == left1)
-          pred_context =
-              3 * (above0 == BWDREF_FRAME || above1 == BWDREF_FRAME ||
-                   left0 == BWDREF_FRAME || left1 == BWDREF_FRAME);
-        else
-          pred_context = 2;
-      } else if (above_has_second || left_has_second) {  // single/comp
-        const MV_REFERENCE_FRAME rfs = !above_has_second ? above0 : left0;
-        const MV_REFERENCE_FRAME crf1 = above_has_second ? above0 : left0;
-        const MV_REFERENCE_FRAME crf2 = above_has_second ? above1 : left1;
-
-        if (rfs == BWDREF_FRAME)
-          pred_context = 3 + (crf1 == BWDREF_FRAME || crf2 == BWDREF_FRAME);
-        else if (rfs == ALTREF_FRAME)
-          pred_context = (crf1 == BWDREF_FRAME || crf2 == BWDREF_FRAME);
-        else
-          pred_context = 1 + 2 * (crf1 == BWDREF_FRAME || crf2 == BWDREF_FRAME);
-      } else {  // single/single
-        if (!CHECK_BACKWARD_REFS(above0) && !CHECK_BACKWARD_REFS(left0)) {
-          pred_context = 2 + (above0 == left0);
-        } else if (!CHECK_BACKWARD_REFS(above0) ||
-                   !CHECK_BACKWARD_REFS(left0)) {
-          const MV_REFERENCE_FRAME edge0 =
-              !CHECK_BACKWARD_REFS(above0) ? left0 : above0;
-          pred_context = 4 * (edge0 == BWDREF_FRAME);
-        } else {
-          pred_context =
-              2 * (above0 == BWDREF_FRAME) + 2 * (left0 == BWDREF_FRAME);
-        }
-      }
-    }
-  } else if (has_above || has_left) {  // one edge available
-    const MB_MODE_INFO *edge_mbmi = has_above ? above_mbmi : left_mbmi;
-
-    if (!is_inter_block(edge_mbmi) ||
-        (!CHECK_BACKWARD_REFS(edge_mbmi->ref_frame[0]) &&
-         !has_second_ref(edge_mbmi)))
-      pred_context = 2;
-    else if (!has_second_ref(edge_mbmi))  // single
-      pred_context = 4 * (edge_mbmi->ref_frame[0] == BWDREF_FRAME);
-    else  // comp
-      pred_context = 3 * (edge_mbmi->ref_frame[0] == BWDREF_FRAME ||
-                          edge_mbmi->ref_frame[1] == BWDREF_FRAME);
-  } else {  // no edges available (2)
-    pred_context = 2;
-  }
-
-  assert(pred_context >= 0 && pred_context < REF_CONTEXTS);
-  return pred_context;
-#endif  // CONFIG_ALTREF2
 }
 
 // For the bit to signal whether the single reference is LAST3/GOLDEN or
@@ -1638,13 +1421,11 @@
   return pred_context;
 }
 
-#if CONFIG_ALTREF2
 // For the bit to signal whether the single reference is ALTREF2_FRAME or
 // BWDREF_FRAME, knowing that it shall be either of these 2 choices.
 int av1_get_pred_context_single_ref_p6(const MACROBLOCKD *xd) {
   return av1_get_pred_context_brf_or_arf2(xd);
 }
-#endif  // CONFIG_ALTREF2
 
 #else  // !CONFIG_EXT_REFS
 
diff --git a/av1/common/pred_common.h b/av1/common/pred_common.h
index ffdeb6b..29f57b8 100644
--- a/av1/common/pred_common.h
+++ b/av1/common/pred_common.h
@@ -243,17 +243,22 @@
   return cm->fc->comp_bwdref_prob[pred_context][0];
 }
 
-#if CONFIG_ALTREF2
-// TODO(zoeliu): ALTREF2 to work with NEW_MULTISYMBOL
 int av1_get_pred_context_comp_bwdref_p1(const AV1_COMMON *cm,
                                         const MACROBLOCKD *xd);
 
+#if CONFIG_NEW_MULTISYMBOL
+static INLINE aom_cdf_prob *av1_get_pred_cdf_comp_bwdref_p1(
+    const AV1_COMMON *cm, const MACROBLOCKD *xd) {
+  const int pred_context = av1_get_pred_context_comp_bwdref_p1(cm, xd);
+  return xd->tile_ctx->comp_bwdref_cdf[pred_context][1];
+}
+#endif  // CONFIG_NEW_MULTISYMBOL
+
 static INLINE aom_prob av1_get_pred_prob_comp_bwdref_p1(const AV1_COMMON *cm,
                                                         const MACROBLOCKD *xd) {
   const int pred_context = av1_get_pred_context_comp_bwdref_p1(cm, xd);
   return cm->fc->comp_bwdref_prob[pred_context][1];
 }
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
 int av1_get_pred_context_single_ref_p1(const MACROBLOCKD *xd);
@@ -292,14 +297,12 @@
   return cm->fc->single_ref_prob[av1_get_pred_context_single_ref_p5(xd)][4];
 }
 
-#if CONFIG_ALTREF2
 int av1_get_pred_context_single_ref_p6(const MACROBLOCKD *xd);
 
 static INLINE aom_prob av1_get_pred_prob_single_ref_p6(const AV1_COMMON *cm,
                                                        const MACROBLOCKD *xd) {
   return cm->fc->single_ref_prob[av1_get_pred_context_single_ref_p6(xd)][5];
 }
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
 #if CONFIG_NEW_MULTISYMBOL
@@ -334,6 +337,12 @@
   return xd->tile_ctx
       ->single_ref_cdf[av1_get_pred_context_single_ref_p5(xd)][4];
 }
+static INLINE aom_cdf_prob *av1_get_pred_cdf_single_ref_p6(
+    const AV1_COMMON *cm, const MACROBLOCKD *xd) {
+  (void)cm;
+  return xd->tile_ctx
+      ->single_ref_cdf[av1_get_pred_context_single_ref_p6(xd)][5];
+}
 #endif  // CONFIG_EXT_REFS
 #endif  // CONFIG_NEW_MULTISYMBOL
 
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index 10e1512..fb0dbd7 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -115,12 +115,8 @@
   cm->comp_fwd_ref[3] = GOLDEN_FRAME;
 
   cm->comp_bwd_ref[0] = BWDREF_FRAME;
-#if CONFIG_ALTREF2
   cm->comp_bwd_ref[1] = ALTREF2_FRAME;
   cm->comp_bwd_ref[2] = ALTREF_FRAME;
-#else   // !CONFIG_ALTREF2
-  cm->comp_bwd_ref[1] = ALTREF_FRAME;
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
   if (cm->ref_frame_sign_bias[LAST_FRAME] ==
       cm->ref_frame_sign_bias[GOLDEN_FRAME]) {
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 846c4bc..0a599c7 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1525,12 +1525,8 @@
       const int ctx_bwd = av1_get_pred_context_comp_bwdref_p(cm, xd);
 #if CONFIG_VAR_REFS
       int bit_bwd;
-// Test need to explicitly code (BWD/ALT2) vs (ALT) branch node in tree
-#if CONFIG_ALTREF2
+      // Test need to explicitly code (BWD/ALT2) vs (ALT) branch node in tree
       const int bit_bwd_uncertain = BWD_OR_ALT2(cm) && ALTREF_IS_VALID(cm);
-#else   // !CONFIG_ALTREF2
-      const int bit_bwd_uncertain = BWD_AND_ALT(cm);
-#endif  // CONFIG_ALTREF2
       if (bit_bwd_uncertain)
         bit_bwd = READ_REF_BIT(comp_bwdref_p);
       else
@@ -1539,7 +1535,6 @@
       const int bit_bwd = READ_REF_BIT(comp_bwdref_p);
 #endif  // CONFIG_VAR_REFS
       if (counts) ++counts->comp_bwdref[ctx_bwd][0][bit_bwd];
-#if CONFIG_ALTREF2
       if (!bit_bwd) {
         const int ctx1_bwd = av1_get_pred_context_comp_bwdref_p1(cm, xd);
 #if CONFIG_VAR_REFS
@@ -1556,9 +1551,6 @@
       } else {
         ref_frame[idx] = cm->comp_bwd_ref[2];
       }
-#else   // !CONFIG_ALTREF2
-      ref_frame[idx] = cm->comp_bwd_ref[bit_bwd];
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
       ref_frame[!idx] = cm->comp_var_ref[bit];
       ref_frame[idx] = cm->comp_fixed_ref;
@@ -1568,7 +1560,6 @@
       const int ctx0 = av1_get_pred_context_single_ref_p1(xd);
 #if CONFIG_VAR_REFS
       int bit0;
-#if CONFIG_ALTREF2
       // Test need to explicitly code (L,L2,L3,G) vs (BWD,ALT2,ALT) branch node
       // in tree
       if ((L_OR_L2(cm) || L3_OR_G(cm)) &&
@@ -1576,14 +1567,6 @@
         bit0 = READ_REF_BIT(single_ref_p1);
       else
         bit0 = (BWD_OR_ALT2(cm) || ALTREF_IS_VALID(cm));
-#else   // !CONFIG_ALTREF2
-      // Test need to explicitly code (L,L2,L3,G) vs (BWD,ALT) branch node in
-      // tree
-      if ((L_OR_L2(cm) || L3_OR_G(cm)) && BWD_OR_ALT(cm))
-        bit0 = READ_REF_BIT(single_ref_p1);
-      else
-        bit0 = BWD_OR_ALT(cm);
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_VAR_REFS
       const int bit0 = READ_REF_BIT(single_ref_p1);
 #endif  // CONFIG_VAR_REFS
@@ -1593,13 +1576,8 @@
         const int ctx1 = av1_get_pred_context_single_ref_p2(xd);
 #if CONFIG_VAR_REFS
         int bit1;
-#if CONFIG_ALTREF2
         // Test need to explicitly code (BWD/ALT2) vs (ALT) branch node in tree
         const int bit1_uncertain = BWD_OR_ALT2(cm) && ALTREF_IS_VALID(cm);
-#else   // !CONFIG_ALTREF2
-        // Test need to explicitly code (BWD) vs (ALT) branch node in tree
-        const int bit1_uncertain = BWD_AND_ALT(cm);
-#endif  // CONFIG_ALTREF2
         if (bit1_uncertain)
           bit1 = READ_REF_BIT(single_ref_p2);
         else
@@ -1608,7 +1586,6 @@
         const int bit1 = READ_REF_BIT(single_ref_p2);
 #endif  // CONFIG_VAR_REFS
         if (counts) ++counts->single_ref[ctx1][1][bit1];
-#if CONFIG_ALTREF2
         if (!bit1) {
           const int ctx5 = av1_get_pred_context_single_ref_p6(xd);
 #if CONFIG_VAR_REFS
@@ -1625,9 +1602,6 @@
         } else {
           ref_frame[0] = ALTREF_FRAME;
         }
-#else  // !CONFIG_ALTREF2
-        ref_frame[0] = bit1 ? ALTREF_FRAME : BWDREF_FRAME;
-#endif  // CONFIG_ALTREF2
       } else {
         const int ctx2 = av1_get_pred_context_single_ref_p3(xd);
 #if CONFIG_VAR_REFS
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 968b903..be8073c 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -1136,8 +1136,6 @@
 #endif  // CONFIG_VAR_REFS
       }
 
-#if CONFIG_ALTREF2
-
 #if CONFIG_VAR_REFS
       // Test need to explicitly code (BWD,ALT2) vs (ALT) branch node in tree
       if (BWD_OR_ALT2(cm) && ALTREF_IS_VALID(cm)) {
@@ -1157,20 +1155,6 @@
       }
 #endif  // CONFIG_VAR_REFS
 
-#else  // !CONFIG_ALTREF2
-
-#if CONFIG_VAR_REFS
-      // Test need to explicitly code (BWD) vs (ALT) branch node in tree
-      if (BWD_AND_ALT(cm)) {
-#endif  // CONFIG_VAR_REFS
-        const int bit_bwd = mbmi->ref_frame[1] == ALTREF_FRAME;
-        WRITE_REF_BIT(bit_bwd, comp_bwdref_p);
-#if CONFIG_VAR_REFS
-      }
-#endif  // CONFIG_VAR_REFS
-
-#endif  // CONFIG_ALTREF2
-
 #else   // !CONFIG_EXT_REFS
       const int bit = mbmi->ref_frame[0] == GOLDEN_FRAME;
       WRITE_REF_BIT(bit, comp_ref_p);
@@ -1180,21 +1164,14 @@
       const int bit0 = (mbmi->ref_frame[0] <= ALTREF_FRAME &&
                         mbmi->ref_frame[0] >= BWDREF_FRAME);
 #if CONFIG_VAR_REFS
-#if CONFIG_ALTREF2
       // Test need to explicitly code (L,L2,L3,G) vs (BWD,ALT2,ALT) branch node
       // in tree
       if ((L_OR_L2(cm) || L3_OR_G(cm)) &&
           (BWD_OR_ALT2(cm) || ALTREF_IS_VALID(cm)))
-#else   // !CONFIG_ALTREF2
-      // Test need to explicitly code (L,L2,L3,G) vs (BWD,ALT) branch node in
-      // tree
-      if ((L_OR_L2(cm) || L3_OR_G(cm)) && BWD_OR_ALT(cm))
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_VAR_REFS
         WRITE_REF_BIT(bit0, single_ref_p1);
 
       if (bit0) {
-#if CONFIG_ALTREF2
 #if CONFIG_VAR_REFS
         // Test need to explicitly code (BWD,ALT2) vs (ALT) branch node in tree
         if (BWD_OR_ALT2(cm) && ALTREF_IS_VALID(cm)) {
@@ -1212,17 +1189,6 @@
 #if CONFIG_VAR_REFS
         }
 #endif  // CONFIG_VAR_REFS
-#else   // !CONFIG_ALTREF2
-#if CONFIG_VAR_REFS
-        // Test need to explicitly code (BWD) vs (ALT) branch node in tree
-        if (BWD_AND_ALT(cm)) {
-#endif  // CONFIG_VAR_REFS
-          const int bit1 = mbmi->ref_frame[0] == ALTREF_FRAME;
-          WRITE_REF_BIT(bit1, single_ref_p2);
-#if CONFIG_VAR_REFS
-        }
-#endif  // CONFIG_VAR_REFS
-#endif  // CONFIG_ALTREF2
       } else {
         const int bit2 = (mbmi->ref_frame[0] == LAST3_FRAME ||
                           mbmi->ref_frame[0] == GOLDEN_FRAME);
@@ -3707,17 +3673,8 @@
   refresh_mask |=
       (cpi->refresh_last_frame << cpi->lst_fb_idxes[LAST_REF_FRAMES - 1]);
 
-#if CONFIG_ALTREF2
   refresh_mask |= (cpi->refresh_bwd_ref_frame << cpi->bwd_fb_idx);
   refresh_mask |= (cpi->refresh_alt2_ref_frame << cpi->alt2_fb_idx);
-#else   // !CONFIG_ALTREF2
-  if (cpi->rc.is_bwd_ref_frame && cpi->num_extra_arfs) {
-    // We have swapped the virtual indices
-    refresh_mask |= (cpi->refresh_bwd_ref_frame << cpi->arf_map[0]);
-  } else {
-    refresh_mask |= (cpi->refresh_bwd_ref_frame << cpi->bwd_fb_idx);
-  }
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
   refresh_mask |= (cpi->refresh_last_frame << cpi->lst_fb_idx);
 #endif  // CONFIG_EXT_REFS
@@ -3736,12 +3693,7 @@
     return refresh_mask | (cpi->refresh_golden_frame << cpi->alt_fb_idx);
   } else {
 #if CONFIG_EXT_REFS
-#if CONFIG_ALTREF2
     const int arf_idx = cpi->alt_fb_idx;
-#else   // !CONFIG_ALTREF2
-    const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
-    const int arf_idx = cpi->arf_map[gf_group->arf_update_idx[gf_group->index]];
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
     int arf_idx = cpi->alt_fb_idx;
     if ((cpi->oxcf.pass == 2) && cpi->multi_arf_allowed) {
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index db20aa3..821d0cc 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -1488,9 +1488,9 @@
   if ((rd_cost->rate != INT_MAX) && (aq_mode == COMPLEXITY_AQ) &&
       (bsize >= BLOCK_16X16) &&
       (cm->frame_type == KEY_FRAME || cpi->refresh_alt_ref_frame ||
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
        cpi->refresh_alt2_ref_frame ||
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
        (cpi->refresh_golden_frame && !cpi->rc.is_src_frame_alt_ref))) {
     av1_caq_select_segment(cpi, x, bsize, mi_row, mi_col, rd_cost->rate);
   }
@@ -1659,11 +1659,9 @@
 
             counts->comp_bwdref[av1_get_pred_context_comp_bwdref_p(cm, xd)][0]
                                [ref1 == ALTREF_FRAME]++;
-#if CONFIG_ALTREF2
             if (ref1 != ALTREF_FRAME)
               counts->comp_bwdref[av1_get_pred_context_comp_bwdref_p1(cm, xd)]
                                  [1][ref1 == ALTREF2_FRAME]++;
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
           counts->comp_ref[av1_get_pred_context_comp_ref_p(cm, xd)][0]
                           [ref0 == GOLDEN_FRAME]++;
@@ -1680,11 +1678,9 @@
             assert(ref0 <= ALTREF_FRAME);
             counts->single_ref[av1_get_pred_context_single_ref_p2(xd)][1]
                               [ref0 == ALTREF_FRAME]++;
-#if CONFIG_ALTREF2
             if (ref0 != ALTREF_FRAME)
               counts->single_ref[av1_get_pred_context_single_ref_p6(xd)][5]
                                 [ref0 == ALTREF2_FRAME]++;
-#endif  // CONFIG_ALTREF2
           } else {
             const int bit1 = !(ref0 == LAST2_FRAME || ref0 == LAST_FRAME);
             counts
@@ -4678,10 +4674,7 @@
     return (!!(ref_flags & AOM_GOLD_FLAG) + !!(ref_flags & AOM_LAST_FLAG) +
 #if CONFIG_EXT_REFS
             !!(ref_flags & AOM_LAST2_FLAG) + !!(ref_flags & AOM_LAST3_FLAG) +
-            !!(ref_flags & AOM_BWD_FLAG) +
-#if CONFIG_ALTREF2
-            !!(ref_flags & AOM_ALT2_FLAG) +
-#endif  // CONFIG_ALTREF2
+            !!(ref_flags & AOM_BWD_FLAG) + !!(ref_flags & AOM_ALT2_FLAG) +
 #endif  // CONFIG_EXT_REFS
             !!(ref_flags & AOM_ALT_FLAG)) >= 2;
   }
@@ -4711,12 +4704,12 @@
            cpi->rc.is_src_frame_ext_arf)
 #else
   else if (cpi->rc.is_src_frame_alt_ref && cpi->refresh_golden_frame)
-#endif
+#endif  // CONFIG_EXT_REFS
     return ALTREF_FRAME;
   else if (cpi->refresh_golden_frame ||
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
            cpi->refresh_alt2_ref_frame ||
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
            cpi->refresh_alt_ref_frame)
     return GOLDEN_FRAME;
   else
@@ -5419,17 +5412,13 @@
       cm->comp_fwd_ref[2] = LAST3_FRAME;
       cm->comp_fwd_ref[3] = GOLDEN_FRAME;
       cm->comp_bwd_ref[0] = BWDREF_FRAME;
-#if CONFIG_ALTREF2
       cm->comp_bwd_ref[1] = ALTREF2_FRAME;
       cm->comp_bwd_ref[2] = ALTREF_FRAME;
-#else   // !CONFIG_ALTREF2
-      cm->comp_bwd_ref[1] = ALTREF_FRAME;
-#endif  // CONFIG_ALTREF2
-#else   // CONFIG_EXT_REFS
+#else                           // !CONFIG_EXT_REFS
     cm->comp_fixed_ref = ALTREF_FRAME;
     cm->comp_var_ref[0] = LAST_FRAME;
     cm->comp_var_ref[1] = GOLDEN_FRAME;
-#endif  // CONFIG_EXT_REFS
+#endif                          // CONFIG_EXT_REFS
 #if !CONFIG_ONE_SIDED_COMPOUND  // Normative in encoder
     }
 #endif  // !CONFIG_ONE_SIDED_COMPOUND
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 5ca1e84..96eaf40 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -305,11 +305,7 @@
 #else
 #if CONFIG_EXT_REFS
     const GF_GROUP *gf_group = &cpi->twopass.gf_group;
-#if CONFIG_ALTREF2
     if (gf_group->update_type[gf_group->index] == INTNL_ARF_UPDATE)
-#else  // !CONFIG_ALTREF2
-    if (gf_group->rf_level[gf_group->index] == GF_ARF_LOW)
-#endif  // CONFIG_ALTREF2
       cm->frame_context_idx = EXT_ARF_FRAME;
     else if (cpi->refresh_alt_ref_frame)
       cm->frame_context_idx = ARF_FRAME;
@@ -990,12 +986,8 @@
     cpi->lst_fb_idxes[fb_idx] = fb_idx;
   cpi->gld_fb_idx = LAST_REF_FRAMES;
   cpi->bwd_fb_idx = LAST_REF_FRAMES + 1;
-#if CONFIG_ALTREF2
   cpi->alt2_fb_idx = LAST_REF_FRAMES + 2;
   cpi->alt_fb_idx = LAST_REF_FRAMES + 3;
-#else   // !CONFIG_ALTREF2
-  cpi->alt_fb_idx = LAST_REF_FRAMES + 2;
-#endif  // CONFIG_ALTREF2
   for (fb_idx = 0; fb_idx < MAX_EXT_ARFS + 1; ++fb_idx)
     cpi->arf_map[fb_idx] = LAST_REF_FRAMES + 2 + fb_idx;
 #else   // !CONFIG_EXT_REFS
@@ -2306,9 +2298,7 @@
   cpi->refresh_golden_frame = 0;
 #if CONFIG_EXT_REFS
   cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
   cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
   cm->refresh_frame_context =
@@ -3128,13 +3118,9 @@
     // in av1_rc_get_second_pass_params(cpi)
     cm->show_existing_frame = 1;
     cpi->rc.is_src_frame_alt_ref = 1;
-#if CONFIG_ALTREF2
     cpi->existing_fb_idx_to_show = (next_frame_update_type == OVERLAY_UPDATE)
                                        ? cpi->alt_fb_idx
                                        : cpi->alt2_fb_idx;
-#else   // !CONFIG_ALTREF2
-    cpi->existing_fb_idx_to_show = cpi->alt_fb_idx;
-#endif  // CONFIG_ALTREF2
     cpi->is_arf_filter_off[which_arf] = 0;
   }
   cpi->rc.is_src_frame_ext_arf = 0;
@@ -3375,10 +3361,8 @@
 #if CONFIG_EXT_REFS
     ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[cpi->bwd_fb_idx],
                cm->new_fb_idx);
-#if CONFIG_ALTREF2
     ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[cpi->alt2_fb_idx],
                cm->new_fb_idx);
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
     ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[cpi->alt_fb_idx],
                cm->new_fb_idx);
@@ -3417,7 +3401,6 @@
     const int tmp = cpi->lst_fb_idxes[LAST_REF_FRAMES - 1];
     shift_last_ref_frames(cpi);
 
-#if CONFIG_ALTREF2
     cpi->lst_fb_idxes[0] = cpi->alt2_fb_idx;
     cpi->alt2_fb_idx = tmp;
     // We need to modify the mapping accordingly
@@ -3426,36 +3409,18 @@
     memcpy(cpi->interp_filter_selected[LAST_FRAME],
            cpi->interp_filter_selected[ALTREF2_FRAME],
            sizeof(cpi->interp_filter_selected[ALTREF2_FRAME]));
-#else      // !CONFIG_ALTREF2
-    cpi->lst_fb_idxes[0] = cpi->alt_fb_idx;
-    cpi->alt_fb_idx = tmp;
-    // We need to modify the mapping accordingly
-    cpi->arf_map[which_arf] = cpi->alt_fb_idx;
-
-    memcpy(cpi->interp_filter_selected[LAST_FRAME],
-           cpi->interp_filter_selected[ALTREF_FRAME + which_arf],
-           sizeof(cpi->interp_filter_selected[ALTREF_FRAME + which_arf]));
-#endif     // CONFIG_ALTREF2
 #endif     // CONFIG_EXT_REFS
   } else { /* For non key/golden frames */
     // === ALTREF_FRAME ===
     if (cpi->refresh_alt_ref_frame) {
       int arf_idx = cpi->alt_fb_idx;
       int which_arf = 0;
-#if CONFIG_EXT_REFS
-#if !CONFIG_ALTREF2
-      if (cpi->oxcf.pass == 2) {
-        const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
-        which_arf = gf_group->arf_update_idx[gf_group->index];
-        arf_idx = cpi->arf_map[which_arf];
-      }
-#endif  // !CONFIG_ALTREF2
-#else   // !CONFIG_EXT_REFS
+#if !CONFIG_EXT_REFS
       if ((cpi->oxcf.pass == 2) && cpi->multi_arf_allowed) {
         const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
         arf_idx = gf_group->arf_update_idx[gf_group->index];
       }
-#endif  // CONFIG_EXT_REFS
+#endif  // !CONFIG_EXT_REFS
       ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[arf_idx], cm->new_fb_idx);
 
       memcpy(cpi->interp_filter_selected[ALTREF_FRAME + which_arf],
@@ -3479,19 +3444,6 @@
 #if CONFIG_EXT_REFS
     // === BWDREF_FRAME ===
     if (cpi->refresh_bwd_ref_frame) {
-#if !CONFIG_ALTREF2
-      if (cpi->rc.is_bwd_ref_frame && cpi->num_extra_arfs) {
-        // We have swapped the virtual indices to allow bwd_ref_frame to use
-        // ALT0 as reference frame. We need to swap them back.
-        // NOTE: The ALT_REFs' are indexed reversely, and ALT0 refers to the
-        //       farthest ALT_REF from the first frame in the gf group.
-        int tmp = cpi->arf_map[0];
-        cpi->arf_map[0] = cpi->alt_fb_idx;
-        cpi->alt_fb_idx = cpi->bwd_fb_idx;
-        cpi->bwd_fb_idx = tmp;
-      }
-#endif  // !CONFIG_ALTREF2
-
       ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[cpi->bwd_fb_idx],
                  cm->new_fb_idx);
 
@@ -3500,7 +3452,6 @@
              sizeof(cpi->interp_filter_selected[0]));
     }
 
-#if CONFIG_ALTREF2
     // === ALTREF2_FRAME ===
     if (cpi->refresh_alt2_ref_frame) {
       ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[cpi->alt2_fb_idx],
@@ -3510,7 +3461,6 @@
              cpi->interp_filter_selected[0],
              sizeof(cpi->interp_filter_selected[0]));
     }
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   }
 
@@ -3548,17 +3498,6 @@
     // lst_fb_idxes[2], lst_fb_idxes[0], lst_fb_idxes[1]
     int ref_frame;
 
-#if !CONFIG_ALTREF2
-    if (cpi->rc.is_bwd_ref_frame && cpi->num_extra_arfs) {
-      // We have swapped the virtual indices to use ALT0 as BWD_REF
-      // and we need to swap them back.
-      int tmp = cpi->arf_map[0];
-      cpi->arf_map[0] = cpi->alt_fb_idx;
-      cpi->alt_fb_idx = cpi->bwd_fb_idx;
-      cpi->bwd_fb_idx = tmp;
-    }
-#endif  // !CONFIG_ALTREF2
-
     if (cm->frame_type == KEY_FRAME) {
       for (ref_frame = 0; ref_frame < LAST_REF_FRAMES; ++ref_frame) {
         ref_cnt_fb(pool->frame_bufs,
@@ -3639,9 +3578,7 @@
     AOM_GOLD_FLAG,
 #if CONFIG_EXT_REFS
     AOM_BWD_FLAG,
-#if CONFIG_ALTREF2
     AOM_ALT2_FLAG,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
     AOM_ALT_FLAG
   };
@@ -3732,12 +3669,8 @@
     refresh[1] = refresh[2] = 0;
     refresh[3] = (cpi->refresh_golden_frame) ? 1 : 0;
     refresh[4] = (cpi->refresh_bwd_ref_frame) ? 1 : 0;
-#if CONFIG_ALTREF2
     refresh[5] = (cpi->refresh_alt2_ref_frame) ? 1 : 0;
     refresh[6] = (cpi->refresh_alt_ref_frame) ? 1 : 0;
-#else  // !CONFIG_ALTREF2
-    refresh[5] = (cpi->refresh_alt_ref_frame) ? 1 : 0;
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
     refresh[1] = (cpi->refresh_golden_frame) ? 1 : 0;
     refresh[2] = (cpi->refresh_alt_ref_frame) ? 1 : 0;
@@ -4554,21 +4487,17 @@
   const int bwd_is_gld = map[cpi->bwd_fb_idx] == map[cpi->gld_fb_idx];
 #endif  // CONFIG_ONE_SIDED_COMPOUND && !CONFIG_EXT_COMP_REFS
 
-#if CONFIG_ALTREF2
   const int alt2_is_last = map[cpi->alt2_fb_idx] == map[cpi->lst_fb_idxes[0]];
   const int alt2_is_last2 = map[cpi->alt2_fb_idx] == map[cpi->lst_fb_idxes[1]];
   const int alt2_is_last3 = map[cpi->alt2_fb_idx] == map[cpi->lst_fb_idxes[2]];
   const int alt2_is_gld = map[cpi->alt2_fb_idx] == map[cpi->gld_fb_idx];
   const int alt2_is_bwd = map[cpi->alt2_fb_idx] == map[cpi->bwd_fb_idx];
-#endif  // CONFIG_ALTREF2
 
   const int last2_is_alt = map[cpi->lst_fb_idxes[1]] == map[cpi->alt_fb_idx];
   const int last3_is_alt = map[cpi->lst_fb_idxes[2]] == map[cpi->alt_fb_idx];
   const int gld_is_alt = map[cpi->gld_fb_idx] == map[cpi->alt_fb_idx];
   const int bwd_is_alt = map[cpi->bwd_fb_idx] == map[cpi->alt_fb_idx];
-#if CONFIG_ALTREF2
   const int alt2_is_alt = map[cpi->alt2_fb_idx] == map[cpi->alt_fb_idx];
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
   const int gld_is_last = map[cpi->gld_fb_idx] == map[cpi->lst_fb_idx];
   const int gld_is_alt = map[cpi->gld_fb_idx] == map[cpi->alt_fb_idx];
@@ -4577,15 +4506,6 @@
 
   int flags = AOM_REFFRAME_ALL;
 
-#if CONFIG_EXT_REFS
-#if !CONFIG_ALTREF2
-  // Disable the use of BWDREF_FRAME for non-bipredictive frames.
-  if (!(cpi->rc.is_bipred_frame || cpi->rc.is_last_bipred_frame ||
-        (cpi->rc.is_bwd_ref_frame && cpi->num_extra_arfs)))
-    flags &= ~AOM_BWD_FLAG;
-#endif  // !CONFIG_ALTREF2
-#endif  // CONFIG_EXT_REFS
-
   if (gld_is_last || gld_is_alt) flags &= ~AOM_GOLD_FLAG;
 
   if (cpi->rc.frames_till_gf_update_due == INT_MAX) flags &= ~AOM_GOLD_FLAG;
@@ -4610,12 +4530,10 @@
     flags &= ~AOM_BWD_FLAG;
 #endif  // CONFIG_ONE_SIDED_COMPOUND && !CONFIG_EXT_COMP_REFS
 
-#if CONFIG_ALTREF2
   if ((alt2_is_last || alt2_is_last2 || alt2_is_last3 || alt2_is_gld ||
        alt2_is_bwd || alt2_is_alt) &&
       (flags & AOM_ALT2_FLAG))
     flags &= ~AOM_ALT2_FLAG;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
   return flags;
@@ -4643,16 +4561,10 @@
   int arf_sign_bias;
 #if CONFIG_EXT_REFS
   const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
-// The arf_sign_bias will be one for internal ARFs'
-#if CONFIG_ALTREF2
+  // The arf_sign_bias will be one for internal ARFs'
   arf_sign_bias = cpi->rc.source_alt_ref_active &&
                   (!cpi->refresh_alt_ref_frame ||
                    gf_group->update_type[gf_group->index] == INTNL_ARF_UPDATE);
-#else   // !CONFIG_ALTREF2
-  arf_sign_bias = cpi->rc.source_alt_ref_active &&
-                  (!cpi->refresh_alt_ref_frame ||
-                   (gf_group->rf_level[gf_group->index] == GF_ARF_LOW));
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
   if ((cpi->oxcf.pass == 2) && cpi->multi_arf_allowed) {
     const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
@@ -4668,10 +4580,8 @@
   cm->ref_frame_sign_bias[ALTREF_FRAME] = arf_sign_bias;
 #if CONFIG_EXT_REFS
   cm->ref_frame_sign_bias[BWDREF_FRAME] = cm->ref_frame_sign_bias[ALTREF_FRAME];
-#if CONFIG_ALTREF2
   cm->ref_frame_sign_bias[ALTREF2_FRAME] =
       cm->ref_frame_sign_bias[ALTREF_FRAME];
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 }
 
@@ -4682,34 +4592,17 @@
   int mask = 0;
   int arf_idx = ALTREF_FRAME;
 
-#if CONFIG_EXT_REFS && !CONFIG_ALTREF2
-  // Get which arf used as ALTREF_FRAME
-  if (cpi->oxcf.pass == 2)
-    arf_idx += cpi->twopass.gf_group.arf_ref_idx[cpi->twopass.gf_group.index];
-#endif  // CONFIG_EXT_REFS && !CONFIG_ALTREF2
-
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
   if (cpi->common.last_frame_type == KEY_FRAME || cpi->refresh_alt_ref_frame ||
       cpi->refresh_alt2_ref_frame)
-#else   // !CONFIG_ALTREF2
+#else   // !CONFIG_EXT_REFS
   if (cpi->common.last_frame_type == KEY_FRAME || cpi->refresh_alt_ref_frame)
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
     return mask;
 
-#if CONFIG_EXT_REFS
-  for (ref = LAST_FRAME; ref < ALTREF_FRAME; ++ref)
-    for (ifilter = EIGHTTAP_REGULAR; ifilter < SWITCHABLE_FILTERS; ++ifilter)
-      ref_total[ref] += cpi->interp_filter_selected[ref][ifilter];
-
-#if !CONFIG_ALTREF2
-  for (ifilter = EIGHTTAP_REGULAR; ifilter < SWITCHABLE_FILTERS; ++ifilter)
-    ref_total[ref] += cpi->interp_filter_selected[arf_idx][ifilter];
-#endif  // !CONFIG_ALTREF2
-#else   // !CONFIG_EXT_REFS
   for (ref = LAST_FRAME; ref <= ALTREF_FRAME; ++ref)
     for (ifilter = EIGHTTAP_REGULAR; ifilter < SWITCHABLE_FILTERS; ++ifilter)
       ref_total[ref] += cpi->interp_filter_selected[ref][ifilter];
-#endif  // CONFIG_EXT_REFS
 
   for (ifilter = EIGHTTAP_REGULAR; ifilter < SWITCHABLE_FILTERS; ++ifilter) {
     if ((ref_total[LAST_FRAME] &&
@@ -4729,11 +4622,9 @@
         (ref_total[BWDREF_FRAME] == 0 ||
          cpi->interp_filter_selected[BWDREF_FRAME][ifilter] * 50 <
              ref_total[BWDREF_FRAME]) &&
-#if CONFIG_ALTREF2
         (ref_total[ALTREF2_FRAME] == 0 ||
          cpi->interp_filter_selected[ALTREF2_FRAME][ifilter] * 50 <
              ref_total[ALTREF2_FRAME]) &&
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
         (ref_total[ALTREF_FRAME] == 0 ||
          cpi->interp_filter_selected[arf_idx][ifilter] * 50 <
@@ -4873,9 +4764,7 @@
     cpi->refresh_last_frame = 0;
     cpi->refresh_golden_frame = 0;
     cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
     cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
     cpi->refresh_alt_ref_frame = 0;
 
     cpi->rc.is_bwd_ref_frame = 0;
@@ -5411,10 +5300,7 @@
   return cm->frame_type == KEY_FRAME || cpi->refresh_last_frame ||
          cpi->refresh_golden_frame ||
 #if CONFIG_EXT_REFS
-         cpi->refresh_bwd_ref_frame ||
-#if CONFIG_ALTREF2
-         cpi->refresh_alt2_ref_frame ||
-#endif  // CONFIG_ALTREF2
+         cpi->refresh_bwd_ref_frame || cpi->refresh_alt2_ref_frame ||
 #endif  // CONFIG_EXT_REFS
          cpi->refresh_alt_ref_frame || !cm->error_resilient_mode ||
          cm->lf.mode_ref_delta_update || cm->seg.update_map ||
@@ -5498,7 +5384,6 @@
   return brf_src_index;
 }
 
-#if CONFIG_ALTREF2
 // Returns 0 if this is not an alt ref else the offset of the source frame
 // used as the arf midpoint.
 static int get_arf2_src_index(AV1_COMP *cpi) {
@@ -5513,7 +5398,6 @@
   }
   return arf2_src_index;
 }
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
 static void check_src_altref(AV1_COMP *cpi,
@@ -5530,10 +5414,10 @@
         (gf_group->update_type[gf_group->index] == INTNL_OVERLAY_UPDATE) ||
 #endif  // CONFIG_EXT_REFS
         (gf_group->update_type[gf_group->index] == OVERLAY_UPDATE);
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
     rc->is_src_frame_ext_arf =
         gf_group->update_type[gf_group->index] == INTNL_OVERLAY_UPDATE;
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
   } else {
     rc->is_src_frame_alt_ref =
         cpi->alt_ref_source && (source == cpi->alt_ref_source);
@@ -5543,20 +5427,20 @@
     // Current frame is an ARF overlay frame.
     cpi->alt_ref_source = NULL;
 
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
     if (rc->is_src_frame_ext_arf && !cpi->common.show_existing_frame) {
       // For INTNL_OVERLAY, when show_existing_frame == 0, they do need to
       // refresh the LAST_FRAME, i.e. LAST3 gets retired, LAST2 becomes LAST3,
       // LAST becomes LAST2, and INTNL_OVERLAY becomes LAST.
       cpi->refresh_last_frame = 1;
     } else {
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
       // Don't refresh the last buffer for an ARF overlay frame. It will
       // become the GF so preserve last as an alternative prediction option.
       cpi->refresh_last_frame = 0;
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
     }
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
   }
 }
 
@@ -5731,9 +5615,7 @@
   cpi->refresh_golden_frame = 0;
 #if CONFIG_EXT_REFS
   cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
   cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   cpi->refresh_alt_ref_frame = 0;
 
@@ -5833,9 +5715,7 @@
       cpi->refresh_golden_frame = 0;
 #if CONFIG_EXT_REFS
       cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
       rc->is_src_frame_alt_ref = 0;
     }
@@ -5843,7 +5723,6 @@
   }
 
 #if CONFIG_EXT_REFS
-#if CONFIG_ALTREF2
   // Should we encode an arf2 frame.
   arf_src_index = get_arf2_src_index(cpi);
   if (arf_src_index) {
@@ -5868,7 +5747,11 @@
 
       if (oxcf->arnr_max_frames > 0) {
         // Produce the filtered ARF frame.
-        av1_temporal_filter(cpi, arf_src_index);
+        av1_temporal_filter(cpi,
+#if CONFIG_BGSPRITE
+                            NULL, NULL,
+#endif  // CONFIG_BGSPRITE
+                            arf_src_index);
         aom_extend_frame_borders(&cpi->alt_ref_buffer);
         force_src_buffer = &cpi->alt_ref_buffer;
       }
@@ -5885,7 +5768,6 @@
     }
     rc->source_alt_ref_pending = 0;
   }
-#endif  // CONFIG_ALTREF2
 
   rc->is_bwd_ref_frame = 0;
   brf_src_index = get_brf_src_index(cpi);
@@ -5898,9 +5780,7 @@
       cpi->refresh_bwd_ref_frame = 1;
       cpi->refresh_last_frame = 0;
       cpi->refresh_golden_frame = 0;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
       cpi->refresh_alt_ref_frame = 0;
 
       rc->is_bwd_ref_frame = 1;
@@ -5972,14 +5852,7 @@
 #if CONFIG_HIGHBITDEPTH && CONFIG_GLOBAL_MOTION
   cm->cur_frame->buf.buf_8bit_valid = 0;
 #endif
-#if CONFIG_EXT_REFS
-#if !CONFIG_ALTREF2
-  if (oxcf->pass == 2) {
-    const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
-    cpi->alt_fb_idx = cpi->arf_map[gf_group->arf_ref_idx[gf_group->index]];
-  }
-#endif  // !CONFIG_ALTREF2
-#else   // !CONFIG_EXT_REFS
+#if !CONFIG_EXT_REFS
   if (cpi->multi_arf_allowed) {
     if (cm->frame_type == KEY_FRAME) {
       init_buffer_indices(cpi);
@@ -5988,7 +5861,7 @@
       cpi->alt_fb_idx = gf_group->arf_ref_idx[gf_group->index];
     }
   }
-#endif  // CONFIG_EXT_REFS
+#endif  // !CONFIG_EXT_REFS
 
   // Start with a 0 size frame.
   *size = 0;
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 014686d..6b86c8e 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -107,9 +107,7 @@
   FRAMEFLAGS_GOLDEN = 1 << 1,
 #if CONFIG_EXT_REFS
   FRAMEFLAGS_BWDREF = 1 << 2,
-#if CONFIG_ALTREF2
-// TODO(zoeliu): To determine whether a frame flag is needed for ALTREF2_FRAME
-#endif  // CONFIG_ALTREF2
+  // TODO(zoeliu): To determine whether a frame flag is needed for ALTREF2_FRAME
   FRAMEFLAGS_ALTREF = 1 << 3,
 #else   // !CONFIG_EXT_REFS
   FRAMEFLAGS_ALTREF = 1 << 2,
@@ -412,10 +410,8 @@
 #endif  // CONFIG_EXT_REFS
   int gld_fb_idx;
 #if CONFIG_EXT_REFS
-  int bwd_fb_idx;  // BWDREF_FRAME
-#if CONFIG_ALTREF2
+  int bwd_fb_idx;   // BWDREF_FRAME
   int alt2_fb_idx;  // ALTREF2_FRAME
-#endif              // CONFIG_ALTREF2
 #endif              // CONFIG_EXT_REFS
   int alt_fb_idx;
 
@@ -425,9 +421,7 @@
   int refresh_golden_frame;
 #if CONFIG_EXT_REFS
   int refresh_bwd_ref_frame;
-#if CONFIG_ALTREF2
   int refresh_alt2_ref_frame;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   int refresh_alt_ref_frame;
 
@@ -677,10 +671,8 @@
 #if CONFIG_EXT_REFS
   else if (ref_frame == BWDREF_FRAME)
     return cpi->bwd_fb_idx;
-#if CONFIG_ALTREF2
   else if (ref_frame == ALTREF2_FRAME)
     return cpi->alt2_fb_idx;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   else
     return cpi->alt_fb_idx;
diff --git a/av1/encoder/firstpass.c b/av1/encoder/firstpass.c
index f71f35f..2305d65 100644
--- a/av1/encoder/firstpass.c
+++ b/av1/encoder/firstpass.c
@@ -1818,13 +1818,7 @@
     // Insert an extra ARF
     // === [frame_index == 2] ===
     if (cpi->num_extra_arfs) {
-#if CONFIG_ALTREF2
       gf_group->update_type[frame_index] = INTNL_ARF_UPDATE;
-#else   // !CONFIG_ALTREF2
-      gf_group->update_type[frame_index] = ARF_UPDATE;
-// Note (weitinglin): GF_ARF_LOW is also used as an identifier
-//                    for internal ALT_REF's:
-#endif  // CONFIG_ALTREF2
       gf_group->rf_level[frame_index] = GF_ARF_LOW;
       gf_group->arf_src_offset[frame_index] = ext_arf_interval;
       gf_group->arf_update_idx[frame_index] = which_arf;
@@ -1978,11 +1972,7 @@
       bipred_group_end = 0;
       // Insert another extra ARF after the overlay frame
       if (which_arf) {
-#if CONFIG_ALTREF2
         gf_group->update_type[frame_index] = INTNL_ARF_UPDATE;
-#else  // !CONFIG_ALTREF2
-        gf_group->update_type[frame_index] = ARF_UPDATE;
-#endif  // CONFIG_ALTREF2
         gf_group->rf_level[frame_index] = GF_ARF_LOW;
         gf_group->arf_src_offset[frame_index] = ext_arf_interval;
         gf_group->arf_update_idx[frame_index] = which_arf;
@@ -2773,9 +2763,7 @@
     case KF_UPDATE: cpi->refresh_last_frame = 1; cpi->refresh_golden_frame = 1;
 #if CONFIG_EXT_REFS
       cpi->refresh_bwd_ref_frame = 1;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 1;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
       cpi->refresh_alt_ref_frame = 1;
       break;
@@ -2783,26 +2771,9 @@
     case LF_UPDATE: cpi->refresh_last_frame = 1; cpi->refresh_golden_frame = 0;
 #if CONFIG_EXT_REFS
       cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
       cpi->refresh_alt_ref_frame = 0;
-
-#if CONFIG_EXT_REFS && !CONFIG_ALTREF2
-      // If we have extra ALT_REFs, we may use the farthest ALT (ALT0) as
-      // the BWDREF_FRAME, as LF_UPDATE frames do not have BWDREF_FRAME
-      // available as their reference.
-      if (cpi->num_extra_arfs) {
-        int tmp = cpi->bwd_fb_idx;
-
-        cpi->bwd_fb_idx = cpi->alt_fb_idx;
-        cpi->alt_fb_idx = cpi->arf_map[0];
-        cpi->arf_map[0] = tmp;
-
-        cpi->rc.is_bwd_ref_frame = 1;
-      }
-#endif  // CONFIG_EXT_REFS && !CONFIG_ALTREF2
       break;
 
     case GF_UPDATE:
@@ -2812,9 +2783,7 @@
       cpi->refresh_golden_frame = 1;
 #if CONFIG_EXT_REFS
       cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
       cpi->refresh_alt_ref_frame = 0;
       break;
@@ -2824,9 +2793,7 @@
       cpi->refresh_golden_frame = 1;
 #if CONFIG_EXT_REFS
       cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
       cpi->refresh_alt_ref_frame = 0;
 
@@ -2835,13 +2802,9 @@
 
     case ARF_UPDATE: cpi->refresh_last_frame = 0; cpi->refresh_golden_frame = 0;
 #if CONFIG_EXT_REFS
-#if CONFIG_ALTREF2
       // NOTE: BWDREF does not get updated along with ALTREF_FRAME.
       cpi->refresh_bwd_ref_frame = 0;
       cpi->refresh_alt2_ref_frame = 0;
-#else   // !CONFIG_ALTREF2
-      cpi->refresh_bwd_ref_frame = 1;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
       cpi->refresh_alt_ref_frame = 1;
       break;
@@ -2851,24 +2814,9 @@
       cpi->refresh_last_frame = 0;
       cpi->refresh_golden_frame = 0;
       cpi->refresh_bwd_ref_frame = 1;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
       cpi->refresh_alt_ref_frame = 0;
 
-#if !CONFIG_ALTREF2
-      if (cpi->num_extra_arfs) {
-        // Allow BRF use the farthest ALT_REF (ALT0) as BWD_REF by swapping
-        // the virtual indices.
-        // NOTE: The indices will be swapped back after this frame is encoded
-        //       (in av1_update_reference_frames()).
-        int tmp = cpi->bwd_fb_idx;
-
-        cpi->bwd_fb_idx = cpi->alt_fb_idx;
-        cpi->alt_fb_idx = cpi->arf_map[0];
-        cpi->arf_map[0] = tmp;
-      }
-#endif  // !CONFIG_ALTREF2
       cpi->rc.is_bwd_ref_frame = 1;
       break;
 
@@ -2876,9 +2824,7 @@
       cpi->refresh_last_frame = 1;
       cpi->refresh_golden_frame = 0;
       cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
       cpi->refresh_alt_ref_frame = 0;
 
       cpi->rc.is_last_bipred_frame = 1;
@@ -2888,9 +2834,7 @@
       cpi->refresh_last_frame = 1;
       cpi->refresh_golden_frame = 0;
       cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
       cpi->refresh_alt_ref_frame = 0;
 
       cpi->rc.is_bipred_frame = 1;
@@ -2900,16 +2844,13 @@
       cpi->refresh_last_frame = 1;
       cpi->refresh_golden_frame = 0;
       cpi->refresh_bwd_ref_frame = 0;
-#if CONFIG_ALTREF2
       cpi->refresh_alt2_ref_frame = 0;
-#endif  // CONFIG_ALTREF2
       cpi->refresh_alt_ref_frame = 0;
 
       cpi->rc.is_src_frame_alt_ref = 1;
       cpi->rc.is_src_frame_ext_arf = 1;
       break;
 
-#if CONFIG_ALTREF2
     case INTNL_ARF_UPDATE:
       cpi->refresh_last_frame = 0;
       cpi->refresh_golden_frame = 0;
@@ -2917,7 +2858,6 @@
       cpi->refresh_alt2_ref_frame = 1;
       cpi->refresh_alt_ref_frame = 0;
       break;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
     default: assert(0); break;
@@ -2960,9 +2900,9 @@
   // If this is an arf frame then we dont want to read the stats file or
   // advance the input pointer as we already have what we need.
   if (gf_group->update_type[gf_group->index] == ARF_UPDATE
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
       || gf_group->update_type[gf_group->index] == INTNL_ARF_UPDATE
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
       ) {
     configure_buffer_updates(cpi);
     target_rate = gf_group->bit_allocation[gf_group->index];
diff --git a/av1/encoder/firstpass.h b/av1/encoder/firstpass.h
index b371228..9c3c597 100644
--- a/av1/encoder/firstpass.h
+++ b/av1/encoder/firstpass.h
@@ -99,12 +99,8 @@
   LAST_BIPRED_UPDATE = 6,    // Last Bi-predictive Frame
   BIPRED_UPDATE = 7,         // Bi-predictive Frame, but not the last one
   INTNL_OVERLAY_UPDATE = 8,  // Internal Overlay Frame
-#if CONFIG_ALTREF2
-  INTNL_ARF_UPDATE = 9,  // Internal Altref Frame (candidate for ALTREF2)
+  INTNL_ARF_UPDATE = 9,      // Internal Altref Frame (candidate for ALTREF2)
   FRAME_UPDATE_TYPES = 10
-#else   // !CONFIG_ALTREF2
-  FRAME_UPDATE_TYPES = 9
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
   FRAME_UPDATE_TYPES = 5
 #endif  // CONFIG_EXT_REFS
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 4acac73..b92befb 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -581,9 +581,9 @@
         curr_frame == 0 ? rc->worst_quality : rc->last_q[KEY_FRAME] * 2;
   } else {
     if (!rc->is_src_frame_alt_ref && (cpi->refresh_golden_frame ||
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
                                       cpi->refresh_alt2_ref_frame ||
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
                                       cpi->refresh_alt_ref_frame)) {
       active_worst_quality = curr_frame == 1 ? rc->last_q[KEY_FRAME] * 5 / 4
                                              : rc->last_q[INTER_FRAME];
@@ -1010,9 +1010,9 @@
           av1_compute_qdelta(rc, q_val, q_val * q_adj_factor, cm->bit_depth);
     }
   } else if (!rc->is_src_frame_alt_ref && (cpi->refresh_golden_frame ||
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
                                            cpi->refresh_alt2_ref_frame ||
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
                                            cpi->refresh_alt_ref_frame)) {
     // Use the lower of active_worst_quality and recent
     // average Q as basis for GF/ARF best Q limit unless last frame was
@@ -1033,11 +1033,11 @@
       active_best_quality = active_best_quality * 15 / 16;
 
     } else if (oxcf->rc_mode == AOM_Q) {
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
       if (!cpi->refresh_alt_ref_frame && !cpi->refresh_alt2_ref_frame) {
 #else
       if (!cpi->refresh_alt_ref_frame) {
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
         active_best_quality = cq_level;
       } else {
         active_best_quality = get_gf_active_quality(rc, q, cm->bit_depth);
@@ -1070,9 +1070,9 @@
       (cpi->twopass.gf_zeromotion_pct < VLOW_MOTION_THRESHOLD)) {
     if (frame_is_intra_only(cm) ||
         (!rc->is_src_frame_alt_ref && (cpi->refresh_golden_frame ||
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
                                        cpi->refresh_alt2_ref_frame ||
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
                                        cpi->refresh_alt_ref_frame))) {
       active_best_quality -=
           (cpi->twopass.extend_minq + cpi->twopass.extend_minq_fast);
@@ -1233,11 +1233,11 @@
     // Decrement count down till next gf
     if (rc->frames_till_gf_update_due > 0) rc->frames_till_gf_update_due--;
 
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
   } else if (!cpi->refresh_alt_ref_frame && !cpi->refresh_alt2_ref_frame) {
 #else
   } else if (!cpi->refresh_alt_ref_frame) {
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
     // Decrement count down till next gf
     if (rc->frames_till_gf_update_due > 0) rc->frames_till_gf_update_due--;
 
@@ -1268,9 +1268,9 @@
   } else {
     if (!rc->is_src_frame_alt_ref &&
         !(cpi->refresh_golden_frame ||
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
           cpi->refresh_alt2_ref_frame ||
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
           cpi->refresh_alt_ref_frame)) {
       rc->last_q[INTER_FRAME] = qindex;
       rc->avg_frame_qindex[INTER_FRAME] =
@@ -1293,9 +1293,9 @@
   if ((qindex < rc->last_boosted_qindex) || (cm->frame_type == KEY_FRAME) ||
       (!rc->constrained_gf_group &&
        (cpi->refresh_alt_ref_frame ||
-#if CONFIG_ALTREF2
+#if CONFIG_EXT_REFS
         cpi->refresh_alt2_ref_frame ||
-#endif  // CONFIG_ALTREF2
+#endif  // CONFIG_EXT_REFS
         (cpi->refresh_golden_frame && !rc->is_src_frame_alt_ref)))) {
     rc->last_boosted_qindex = qindex;
   }
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c
index c30506a..8e04329 100644
--- a/av1/encoder/rd.c
+++ b/av1/encoder/rd.c
@@ -328,15 +328,11 @@
   128, 144, 128, 128, 144,
 #if CONFIG_EXT_REFS
   // TODO(zoeliu): To adjust further following factor values.
-  128, 128, 128
+  128, 128, 128,
   // TODO(weitinglin): We should investigate if the values should be the same
   //                   as the value used by OVERLAY frame
-  ,
-  144  // INTNL_OVERLAY_UPDATE
-#if CONFIG_ALTREF2
-  ,
+  144,  // INTNL_OVERLAY_UPDATE
   128   // INTNL_ARF_UPDATE
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 };
 
@@ -1073,9 +1069,7 @@
     rd->thresh_mult[THR_NEARESTL2] = 300;
     rd->thresh_mult[THR_NEARESTL3] = 300;
     rd->thresh_mult[THR_NEARESTB] = 300;
-#if CONFIG_ALTREF2
     rd->thresh_mult[THR_NEARESTA2] = 300;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
     rd->thresh_mult[THR_NEARESTA] = 300;
     rd->thresh_mult[THR_NEARESTG] = 300;
@@ -1085,9 +1079,7 @@
     rd->thresh_mult[THR_NEARESTL2] = 0;
     rd->thresh_mult[THR_NEARESTL3] = 0;
     rd->thresh_mult[THR_NEARESTB] = 0;
-#if CONFIG_ALTREF2
     rd->thresh_mult[THR_NEARESTA2] = 0;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
     rd->thresh_mult[THR_NEARESTA] = 0;
     rd->thresh_mult[THR_NEARESTG] = 0;
@@ -1100,9 +1092,7 @@
   rd->thresh_mult[THR_NEWL2] += 1000;
   rd->thresh_mult[THR_NEWL3] += 1000;
   rd->thresh_mult[THR_NEWB] += 1000;
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_NEWA2] = 1000;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   rd->thresh_mult[THR_NEWA] += 1000;
   rd->thresh_mult[THR_NEWG] += 1000;
@@ -1112,9 +1102,7 @@
   rd->thresh_mult[THR_NEARL2] += 1000;
   rd->thresh_mult[THR_NEARL3] += 1000;
   rd->thresh_mult[THR_NEARB] += 1000;
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_NEARA2] = 1000;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   rd->thresh_mult[THR_NEARA] += 1000;
   rd->thresh_mult[THR_NEARG] += 1000;
@@ -1124,9 +1112,7 @@
   rd->thresh_mult[THR_ZEROL2] += 2000;
   rd->thresh_mult[THR_ZEROL3] += 2000;
   rd->thresh_mult[THR_ZEROB] += 2000;
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_ZEROA2] = 2000;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   rd->thresh_mult[THR_ZEROG] += 2000;
   rd->thresh_mult[THR_ZEROA] += 2000;
@@ -1194,12 +1180,10 @@
   rd->thresh_mult[THR_COMP_NEAREST_NEARESTL2B] += 1000;
   rd->thresh_mult[THR_COMP_NEAREST_NEARESTL3B] += 1000;
   rd->thresh_mult[THR_COMP_NEAREST_NEARESTGB] += 1000;
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_COMP_NEAREST_NEARESTLA2] += 1000;
   rd->thresh_mult[THR_COMP_NEAREST_NEARESTL2A2] += 1000;
   rd->thresh_mult[THR_COMP_NEAREST_NEARESTL3A2] += 1000;
   rd->thresh_mult[THR_COMP_NEAREST_NEARESTGA2] += 1000;
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   rd->thresh_mult[THR_COMP_NEAREST_NEARESTLL2] += 1000;
@@ -1222,12 +1206,10 @@
   rd->thresh_mult[THR_COMP_NEARESTL2B] += 1000;
   rd->thresh_mult[THR_COMP_NEARESTL3B] += 1000;
   rd->thresh_mult[THR_COMP_NEARESTGB] += 1000;
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_COMP_NEARESTLA2] += 1000;
   rd->thresh_mult[THR_COMP_NEARESTL2A2] += 1000;
   rd->thresh_mult[THR_COMP_NEARESTL3A2] += 1000;
   rd->thresh_mult[THR_COMP_NEARESTGA2] += 1000;
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   rd->thresh_mult[THR_COMP_NEARESTLL2] += 1000;
@@ -1308,7 +1290,6 @@
   rd->thresh_mult[THR_COMP_NEW_NEWGB] += 2000;
   rd->thresh_mult[THR_COMP_ZERO_ZEROGB] += 2500;
 
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_COMP_NEAR_NEARLA2] += 1200;
   rd->thresh_mult[THR_COMP_NEAREST_NEWLA2] += 1500;
   rd->thresh_mult[THR_COMP_NEW_NEARESTLA2] += 1500;
@@ -1340,7 +1321,6 @@
   rd->thresh_mult[THR_COMP_NEW_NEARGA2] += 1700;
   rd->thresh_mult[THR_COMP_NEW_NEWGA2] += 2000;
   rd->thresh_mult[THR_COMP_ZERO_ZEROGA2] += 2500;
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   rd->thresh_mult[THR_COMP_NEAR_NEARLL2] += 1200;
@@ -1400,7 +1380,6 @@
   rd->thresh_mult[THR_COMP_NEARGB] += 1500;
   rd->thresh_mult[THR_COMP_NEWGB] += 2000;
 
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_COMP_NEARLA2] += 1500;
   rd->thresh_mult[THR_COMP_NEWLA2] += 2000;
   rd->thresh_mult[THR_COMP_NEARL2A2] += 1500;
@@ -1409,7 +1388,6 @@
   rd->thresh_mult[THR_COMP_NEWL3A2] += 2000;
   rd->thresh_mult[THR_COMP_NEARGA2] += 1500;
   rd->thresh_mult[THR_COMP_NEWGA2] += 2000;
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   rd->thresh_mult[THR_COMP_NEARLL2] += 1500;
@@ -1436,12 +1414,10 @@
   rd->thresh_mult[THR_COMP_ZEROL3B] += 2500;
   rd->thresh_mult[THR_COMP_ZEROGB] += 2500;
 
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_COMP_ZEROLA2] += 2500;
   rd->thresh_mult[THR_COMP_ZEROL2A2] += 2500;
   rd->thresh_mult[THR_COMP_ZEROL3A2] += 2500;
   rd->thresh_mult[THR_COMP_ZEROGA2] += 2500;
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   rd->thresh_mult[THR_COMP_ZEROLL2] += 2500;
@@ -1491,12 +1467,10 @@
   rd->thresh_mult[THR_COMP_INTERINTRA_NEARB] += 1500;
   rd->thresh_mult[THR_COMP_INTERINTRA_NEWB] += 2000;
 
-#if CONFIG_ALTREF2
   rd->thresh_mult[THR_COMP_INTERINTRA_ZEROA2] += 1500;
   rd->thresh_mult[THR_COMP_INTERINTRA_NEARESTA2] += 1500;
   rd->thresh_mult[THR_COMP_INTERINTRA_NEARA2] += 1500;
   rd->thresh_mult[THR_COMP_INTERINTRA_NEWA2] += 2000;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
   rd->thresh_mult[THR_COMP_INTERINTRA_ZEROA] += 1500;
@@ -1513,9 +1487,7 @@
     2500,
     2500,
     2500,
-#if CONFIG_ALTREF2
     2500,
-#endif  // CONFIG_ALTREF2
     2500,
     2500,
     4500,
@@ -1526,12 +1498,10 @@
     4500,
     4500,
     4500,
-#if CONFIG_ALTREF2
     4500,
     4500,
     4500,
     4500,
-#endif  // CONFIG_ALTREF2
     2500
 #else  // !CONFIG_EXT_REFS
     2500,
diff --git a/av1/encoder/rd.h b/av1/encoder/rd.h
index 2cfd8f2..39806b2 100644
--- a/av1/encoder/rd.h
+++ b/av1/encoder/rd.h
@@ -54,9 +54,7 @@
   THR_NEARESTL2,
   THR_NEARESTL3,
   THR_NEARESTB,
-#if CONFIG_ALTREF2
   THR_NEARESTA2,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   THR_NEARESTA,
   THR_NEARESTG,
@@ -68,9 +66,7 @@
   THR_NEWL2,
   THR_NEWL3,
   THR_NEWB,
-#if CONFIG_ALTREF2
   THR_NEWA2,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   THR_NEWA,
   THR_NEWG,
@@ -80,9 +76,7 @@
   THR_NEARL2,
   THR_NEARL3,
   THR_NEARB,
-#if CONFIG_ALTREF2
   THR_NEARA2,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   THR_NEARA,
   THR_NEARG,
@@ -92,9 +86,7 @@
   THR_ZEROL2,
   THR_ZEROL3,
   THR_ZEROB,
-#if CONFIG_ALTREF2
   THR_ZEROA2,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   THR_ZEROA,
   THR_ZEROG,
@@ -160,12 +152,10 @@
   THR_COMP_NEAREST_NEARESTL2B,
   THR_COMP_NEAREST_NEARESTL3B,
   THR_COMP_NEAREST_NEARESTGB,
-#if CONFIG_ALTREF2
   THR_COMP_NEAREST_NEARESTLA2,
   THR_COMP_NEAREST_NEARESTL2A2,
   THR_COMP_NEAREST_NEARESTL3A2,
   THR_COMP_NEAREST_NEARESTGA2,
-#endif  // CONFIG_ALTREF2
 #if CONFIG_EXT_COMP_REFS
   THR_COMP_NEAREST_NEARESTLL2,
   THR_COMP_NEAREST_NEARESTLL3,
@@ -187,12 +177,10 @@
   THR_COMP_NEARESTL2B,
   THR_COMP_NEARESTL3B,
   THR_COMP_NEARESTGB,
-#if CONFIG_ALTREF2
   THR_COMP_NEARESTLA2,
   THR_COMP_NEARESTL2A2,
   THR_COMP_NEARESTL3A2,
   THR_COMP_NEARESTGA2,
-#endif  // CONFIG_ALTREF2
 #if CONFIG_EXT_COMP_REFS
   THR_COMP_NEARESTLL2,
   THR_COMP_NEARESTLL3,
@@ -280,7 +268,6 @@
   THR_COMP_NEW_NEWGB,
   THR_COMP_ZERO_ZEROGB,
 
-#if CONFIG_ALTREF2
   THR_COMP_NEAR_NEARLA2,
   THR_COMP_NEW_NEARESTLA2,
   THR_COMP_NEAREST_NEWLA2,
@@ -312,7 +299,6 @@
   THR_COMP_NEAR_NEWGA2,
   THR_COMP_NEW_NEWGA2,
   THR_COMP_ZERO_ZEROGA2,
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   THR_COMP_NEAR_NEARLL2,
@@ -372,7 +358,6 @@
   THR_COMP_NEARGB,
   THR_COMP_NEWGB,
 
-#if CONFIG_ALTREF2
   THR_COMP_NEARLA2,
   THR_COMP_NEWLA2,
   THR_COMP_NEARL2A2,
@@ -381,7 +366,6 @@
   THR_COMP_NEWL3A2,
   THR_COMP_NEARGA2,
   THR_COMP_NEWGA2,
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   THR_COMP_NEARLL2,
@@ -408,12 +392,10 @@
   THR_COMP_ZEROL3B,
   THR_COMP_ZEROGB,
 
-#if CONFIG_ALTREF2
   THR_COMP_ZEROLA2,
   THR_COMP_ZEROL2A2,
   THR_COMP_ZEROL3A2,
   THR_COMP_ZEROGA2,
-#endif  // CONFIG_ALTEF2
 
 #if CONFIG_EXT_COMP_REFS
   THR_COMP_ZEROLL2,
@@ -463,12 +445,10 @@
   THR_COMP_INTERINTRA_NEARB,
   THR_COMP_INTERINTRA_NEWB,
 
-#if CONFIG_ALTREF2
   THR_COMP_INTERINTRA_ZEROA2,
   THR_COMP_INTERINTRA_NEARESTA2,
   THR_COMP_INTERINTRA_NEARA2,
   THR_COMP_INTERINTRA_NEWA2,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
   THR_COMP_INTERINTRA_ZEROA,
@@ -485,9 +465,7 @@
   THR_LAST2,
   THR_LAST3,
   THR_BWDR,
-#if CONFIG_ALTREF2
   THR_ALTR2,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   THR_GOLD,
   THR_ALTR,
@@ -505,12 +483,10 @@
   THR_COMP_L3B,
   THR_COMP_GB,
 
-#if CONFIG_ALTREF2
   THR_COMP_LA2,
   THR_COMP_L2A2,
   THR_COMP_L3A2,
   THR_COMP_GA2,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
   THR_INTRA,
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 2e0f246..4cbd660 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -79,8 +79,6 @@
 
 #if CONFIG_EXT_REFS
 
-#if CONFIG_ALTREF2
-
 #define LAST_FRAME_MODE_MASK                                          \
   ((1 << INTRA_FRAME) | (1 << LAST2_FRAME) | (1 << LAST3_FRAME) |     \
    (1 << GOLDEN_FRAME) | (1 << BWDREF_FRAME) | (1 << ALTREF2_FRAME) | \
@@ -110,29 +108,6 @@
    (1 << LAST3_FRAME) | (1 << GOLDEN_FRAME) | (1 << BWDREF_FRAME) | \
    (1 << ALTREF2_FRAME))
 
-#else  // CONFIG_ALTREF2
-
-#define LAST_FRAME_MODE_MASK                                      \
-  ((1 << INTRA_FRAME) | (1 << LAST2_FRAME) | (1 << LAST3_FRAME) | \
-   (1 << GOLDEN_FRAME) | (1 << BWDREF_FRAME) | (1 << ALTREF_FRAME))
-#define LAST2_FRAME_MODE_MASK                                    \
-  ((1 << INTRA_FRAME) | (1 << LAST_FRAME) | (1 << LAST3_FRAME) | \
-   (1 << GOLDEN_FRAME) | (1 << BWDREF_FRAME) | (1 << ALTREF_FRAME))
-#define LAST3_FRAME_MODE_MASK                                    \
-  ((1 << INTRA_FRAME) | (1 << LAST_FRAME) | (1 << LAST2_FRAME) | \
-   (1 << GOLDEN_FRAME) | (1 << BWDREF_FRAME) | (1 << ALTREF_FRAME))
-#define GOLDEN_FRAME_MODE_MASK                                   \
-  ((1 << INTRA_FRAME) | (1 << LAST_FRAME) | (1 << LAST2_FRAME) | \
-   (1 << LAST3_FRAME) | (1 << BWDREF_FRAME) | (1 << ALTREF_FRAME))
-#define BWDREF_FRAME_MODE_MASK                                   \
-  ((1 << INTRA_FRAME) | (1 << LAST_FRAME) | (1 << LAST2_FRAME) | \
-   (1 << LAST3_FRAME) | (1 << GOLDEN_FRAME) | (1 << ALTREF_FRAME))
-#define ALTREF_FRAME_MODE_MASK                                   \
-  ((1 << INTRA_FRAME) | (1 << LAST_FRAME) | (1 << LAST2_FRAME) | \
-   (1 << LAST3_FRAME) | (1 << GOLDEN_FRAME) | (1 << BWDREF_FRAME))
-
-#endif  // CONFIG_ALTREF2
-
 #else  // !CONFIG_EXT_REFS
 
 #define LAST_FRAME_MODE_MASK \
@@ -146,22 +121,12 @@
 
 #if CONFIG_EXT_REFS
 #if CONFIG_EXT_COMP_REFS
-#if CONFIG_ALTREF2
 #define SECOND_REF_FRAME_MASK                                         \
   ((1 << ALTREF_FRAME) | (1 << ALTREF2_FRAME) | (1 << BWDREF_FRAME) | \
    (1 << GOLDEN_FRAME) | (1 << LAST2_FRAME) | 0x01)
-#else  // !CONFIG_ALTREF2
-#define SECOND_REF_FRAME_MASK                                        \
-  ((1 << ALTREF_FRAME) | (1 << BWDREF_FRAME) | (1 << GOLDEN_FRAME) | \
-   (1 << LAST2_FRAME) | 0x01)  // NOLINT
-#endif                         // CONFIG_ALTREF2
-#else                          // !CONFIG_EXT_COMP_REFS
-#if CONFIG_ALTREF2
+#else  // !CONFIG_EXT_COMP_REFS
 #define SECOND_REF_FRAME_MASK \
   ((1 << ALTREF_FRAME) | (1 << ALTREF2_FRAME) | (1 << BWDREF_FRAME) | 0x01)
-#else  // !CONFIG_ALTREF2
-#define SECOND_REF_FRAME_MASK ((1 << ALTREF_FRAME) | (1 << BWDREF_FRAME) | 0x01)
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_COMP_REFS
 #else   // !CONFIG_EXT_REFS
 #define SECOND_REF_FRAME_MASK ((1 << ALTREF_FRAME) | 0x01)
@@ -215,9 +180,7 @@
   { NEARESTMV, { LAST2_FRAME, NONE_FRAME } },
   { NEARESTMV, { LAST3_FRAME, NONE_FRAME } },
   { NEARESTMV, { BWDREF_FRAME, NONE_FRAME } },
-#if CONFIG_ALTREF2
   { NEARESTMV, { ALTREF2_FRAME, NONE_FRAME } },
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   { NEARESTMV, { ALTREF_FRAME, NONE_FRAME } },
   { NEARESTMV, { GOLDEN_FRAME, NONE_FRAME } },
@@ -229,9 +192,7 @@
   { NEWMV, { LAST2_FRAME, NONE_FRAME } },
   { NEWMV, { LAST3_FRAME, NONE_FRAME } },
   { NEWMV, { BWDREF_FRAME, NONE_FRAME } },
-#if CONFIG_ALTREF2
   { NEWMV, { ALTREF2_FRAME, NONE_FRAME } },
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   { NEWMV, { ALTREF_FRAME, NONE_FRAME } },
   { NEWMV, { GOLDEN_FRAME, NONE_FRAME } },
@@ -241,9 +202,7 @@
   { NEARMV, { LAST2_FRAME, NONE_FRAME } },
   { NEARMV, { LAST3_FRAME, NONE_FRAME } },
   { NEARMV, { BWDREF_FRAME, NONE_FRAME } },
-#if CONFIG_ALTREF2
   { NEARMV, { ALTREF2_FRAME, NONE_FRAME } },
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   { NEARMV, { ALTREF_FRAME, NONE_FRAME } },
   { NEARMV, { GOLDEN_FRAME, NONE_FRAME } },
@@ -253,9 +212,7 @@
   { ZEROMV, { LAST2_FRAME, NONE_FRAME } },
   { ZEROMV, { LAST3_FRAME, NONE_FRAME } },
   { ZEROMV, { BWDREF_FRAME, NONE_FRAME } },
-#if CONFIG_ALTREF2
   { ZEROMV, { ALTREF2_FRAME, NONE_FRAME } },
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
   { ZEROMV, { GOLDEN_FRAME, NONE_FRAME } },
   { ZEROMV, { ALTREF_FRAME, NONE_FRAME } },
@@ -324,12 +281,10 @@
   { NEAREST_NEARESTMV, { LAST2_FRAME, BWDREF_FRAME } },
   { NEAREST_NEARESTMV, { LAST3_FRAME, BWDREF_FRAME } },
   { NEAREST_NEARESTMV, { GOLDEN_FRAME, BWDREF_FRAME } },
-#if CONFIG_ALTREF2
   { NEAREST_NEARESTMV, { LAST_FRAME, ALTREF2_FRAME } },
   { NEAREST_NEARESTMV, { LAST2_FRAME, ALTREF2_FRAME } },
   { NEAREST_NEARESTMV, { LAST3_FRAME, ALTREF2_FRAME } },
   { NEAREST_NEARESTMV, { GOLDEN_FRAME, ALTREF2_FRAME } },
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   { NEAREST_NEARESTMV, { LAST_FRAME, LAST2_FRAME } },
@@ -352,12 +307,10 @@
   { NEARESTMV, { LAST2_FRAME, BWDREF_FRAME } },
   { NEARESTMV, { LAST3_FRAME, BWDREF_FRAME } },
   { NEARESTMV, { GOLDEN_FRAME, BWDREF_FRAME } },
-#if CONFIG_ALTREF2
   { NEARESTMV, { LAST_FRAME, ALTREF2_FRAME } },
   { NEARESTMV, { LAST2_FRAME, ALTREF2_FRAME } },
   { NEARESTMV, { LAST3_FRAME, ALTREF2_FRAME } },
   { NEARESTMV, { GOLDEN_FRAME, ALTREF2_FRAME } },
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   { NEARESTMV, { LAST_FRAME, LAST2_FRAME } },
@@ -444,7 +397,6 @@
   { NEW_NEWMV, { GOLDEN_FRAME, BWDREF_FRAME } },
   { ZERO_ZEROMV, { GOLDEN_FRAME, BWDREF_FRAME } },
 
-#if CONFIG_ALTREF2
   { NEAR_NEARMV, { LAST_FRAME, ALTREF2_FRAME } },
   { NEW_NEARESTMV, { LAST_FRAME, ALTREF2_FRAME } },
   { NEAREST_NEWMV, { LAST_FRAME, ALTREF2_FRAME } },
@@ -476,7 +428,6 @@
   { NEAR_NEWMV, { GOLDEN_FRAME, ALTREF2_FRAME } },
   { NEW_NEWMV, { GOLDEN_FRAME, ALTREF2_FRAME } },
   { ZERO_ZEROMV, { GOLDEN_FRAME, ALTREF2_FRAME } },
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   { NEAR_NEARMV, { LAST_FRAME, LAST2_FRAME } },
@@ -536,7 +487,6 @@
   { NEARMV, { GOLDEN_FRAME, BWDREF_FRAME } },
   { NEWMV, { GOLDEN_FRAME, BWDREF_FRAME } },
 
-#if CONFIG_ALTREF2
   { NEARMV, { LAST_FRAME, ALTREF2_FRAME } },
   { NEWMV, { LAST_FRAME, ALTREF2_FRAME } },
   { NEARMV, { LAST2_FRAME, ALTREF2_FRAME } },
@@ -545,7 +495,6 @@
   { NEWMV, { LAST3_FRAME, ALTREF2_FRAME } },
   { NEARMV, { GOLDEN_FRAME, ALTREF2_FRAME } },
   { NEWMV, { GOLDEN_FRAME, ALTREF2_FRAME } },
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   { NEARMV, { LAST_FRAME, LAST2_FRAME } },
@@ -572,12 +521,10 @@
   { ZEROMV, { LAST3_FRAME, BWDREF_FRAME } },
   { ZEROMV, { GOLDEN_FRAME, BWDREF_FRAME } },
 
-#if CONFIG_ALTREF2
   { ZEROMV, { LAST_FRAME, ALTREF2_FRAME } },
   { ZEROMV, { LAST2_FRAME, ALTREF2_FRAME } },
   { ZEROMV, { LAST3_FRAME, ALTREF2_FRAME } },
   { ZEROMV, { GOLDEN_FRAME, ALTREF2_FRAME } },
-#endif  // CONFIG_ALTREF2
 
 #if CONFIG_EXT_COMP_REFS
   { ZEROMV, { LAST_FRAME, LAST2_FRAME } },
@@ -627,12 +574,10 @@
   { NEARMV, { BWDREF_FRAME, INTRA_FRAME } },
   { NEWMV, { BWDREF_FRAME, INTRA_FRAME } },
 
-#if CONFIG_ALTREF2
   { ZEROMV, { ALTREF2_FRAME, INTRA_FRAME } },
   { NEARESTMV, { ALTREF2_FRAME, INTRA_FRAME } },
   { NEARMV, { ALTREF2_FRAME, INTRA_FRAME } },
   { NEWMV, { ALTREF2_FRAME, INTRA_FRAME } },
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
   { ZEROMV, { ALTREF_FRAME, INTRA_FRAME } },
@@ -6668,9 +6613,7 @@
       aom_prob ref_single_p3 = av1_get_pred_prob_single_ref_p3(cm, xd);
       aom_prob ref_single_p4 = av1_get_pred_prob_single_ref_p4(cm, xd);
       aom_prob ref_single_p5 = av1_get_pred_prob_single_ref_p5(cm, xd);
-#if CONFIG_ALTREF2
       aom_prob ref_single_p6 = av1_get_pred_prob_single_ref_p6(cm, xd);
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
       unsigned int base_cost = av1_cost_bit(intra_inter_p, 1);
@@ -6678,13 +6621,10 @@
       ref_costs_single[LAST_FRAME] =
 #if CONFIG_EXT_REFS
           ref_costs_single[LAST2_FRAME] = ref_costs_single[LAST3_FRAME] =
-              ref_costs_single[BWDREF_FRAME] =
-#if CONFIG_ALTREF2
-                  ref_costs_single[ALTREF2_FRAME] =
-#endif  // CONFIG_ALTREF2
+              ref_costs_single[BWDREF_FRAME] = ref_costs_single[ALTREF2_FRAME] =
 #endif  // CONFIG_EXT_REFS
-                      ref_costs_single[GOLDEN_FRAME] =
-                          ref_costs_single[ALTREF_FRAME] = base_cost;
+                  ref_costs_single[GOLDEN_FRAME] =
+                      ref_costs_single[ALTREF_FRAME] = base_cost;
 
 #if CONFIG_EXT_REFS
       ref_costs_single[LAST_FRAME] += av1_cost_bit(ref_single_p1, 0);
@@ -6692,9 +6632,7 @@
       ref_costs_single[LAST3_FRAME] += av1_cost_bit(ref_single_p1, 0);
       ref_costs_single[GOLDEN_FRAME] += av1_cost_bit(ref_single_p1, 0);
       ref_costs_single[BWDREF_FRAME] += av1_cost_bit(ref_single_p1, 1);
-#if CONFIG_ALTREF2
       ref_costs_single[ALTREF2_FRAME] += av1_cost_bit(ref_single_p1, 1);
-#endif  // CONFIG_ALTREF2
       ref_costs_single[ALTREF_FRAME] += av1_cost_bit(ref_single_p1, 1);
 
       ref_costs_single[LAST_FRAME] += av1_cost_bit(ref_single_p3, 0);
@@ -6703,9 +6641,7 @@
       ref_costs_single[GOLDEN_FRAME] += av1_cost_bit(ref_single_p3, 1);
 
       ref_costs_single[BWDREF_FRAME] += av1_cost_bit(ref_single_p2, 0);
-#if CONFIG_ALTREF2
       ref_costs_single[ALTREF2_FRAME] += av1_cost_bit(ref_single_p2, 0);
-#endif  // CONFIG_ALTREF2
       ref_costs_single[ALTREF_FRAME] += av1_cost_bit(ref_single_p2, 1);
 
       ref_costs_single[LAST_FRAME] += av1_cost_bit(ref_single_p4, 0);
@@ -6714,10 +6650,8 @@
       ref_costs_single[LAST3_FRAME] += av1_cost_bit(ref_single_p5, 0);
       ref_costs_single[GOLDEN_FRAME] += av1_cost_bit(ref_single_p5, 1);
 
-#if CONFIG_ALTREF2
       ref_costs_single[BWDREF_FRAME] += av1_cost_bit(ref_single_p6, 0);
       ref_costs_single[ALTREF2_FRAME] += av1_cost_bit(ref_single_p6, 1);
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
       ref_costs_single[LAST_FRAME] += av1_cost_bit(ref_single_p1, 0);
       ref_costs_single[GOLDEN_FRAME] += av1_cost_bit(ref_single_p1, 1);
@@ -6732,9 +6666,7 @@
       ref_costs_single[LAST2_FRAME] = 512;
       ref_costs_single[LAST3_FRAME] = 512;
       ref_costs_single[BWDREF_FRAME] = 512;
-#if CONFIG_ALTREF2
       ref_costs_single[ALTREF2_FRAME] = 512;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
       ref_costs_single[GOLDEN_FRAME] = 512;
       ref_costs_single[ALTREF_FRAME] = 512;
@@ -6746,9 +6678,7 @@
       aom_prob ref_comp_p1 = av1_get_pred_prob_comp_ref_p1(cm, xd);
       aom_prob ref_comp_p2 = av1_get_pred_prob_comp_ref_p2(cm, xd);
       aom_prob bwdref_comp_p = av1_get_pred_prob_comp_bwdref_p(cm, xd);
-#if CONFIG_ALTREF2
       aom_prob bwdref_comp_p1 = av1_get_pred_prob_comp_bwdref_p1(cm, xd);
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
       unsigned int base_cost = av1_cost_bit(intra_inter_p, 1);
@@ -6764,10 +6694,7 @@
 #else
               base_cost;
 #endif  // USE_UNI_COMP_REFS
-      ref_bicomp_costs[BWDREF_FRAME] =
-#if CONFIG_ALTREF2
-          ref_bicomp_costs[ALTREF2_FRAME] = 0;
-#endif  // CONFIG_ALTREF2
+      ref_bicomp_costs[BWDREF_FRAME] = ref_bicomp_costs[ALTREF2_FRAME] = 0;
       ref_bicomp_costs[ALTREF_FRAME] = 0;
 
       ref_bicomp_costs[LAST_FRAME] += av1_cost_bit(ref_comp_p, 0);
@@ -6782,15 +6709,11 @@
       ref_bicomp_costs[GOLDEN_FRAME] += av1_cost_bit(ref_comp_p2, 1);
 
       ref_bicomp_costs[BWDREF_FRAME] += av1_cost_bit(bwdref_comp_p, 0);
-#if CONFIG_ALTREF2
       ref_bicomp_costs[ALTREF2_FRAME] += av1_cost_bit(bwdref_comp_p, 0);
-#endif  // CONFIG_ALTREF2
       ref_bicomp_costs[ALTREF_FRAME] += av1_cost_bit(bwdref_comp_p, 1);
 
-#if CONFIG_ALTREF2
       ref_bicomp_costs[BWDREF_FRAME] += av1_cost_bit(bwdref_comp_p1, 0);
       ref_bicomp_costs[ALTREF2_FRAME] += av1_cost_bit(bwdref_comp_p1, 1);
-#endif  // CONFIG_ALTREF2
 
       int ref0, ref1;
       for (ref0 = LAST_FRAME; ref0 <= GOLDEN_FRAME; ++ref0) {
@@ -6829,11 +6752,8 @@
               ref_costs_comp[GOLDEN_FRAME] = base_cost;
 
 #if CONFIG_EXT_REFS
-      ref_costs_comp[BWDREF_FRAME] =
-#if CONFIG_ALTREF2
-          ref_costs_comp[ALTREF2_FRAME] =
-#endif  // CONFIG_ALTREF2
-              ref_costs_comp[ALTREF_FRAME] = 0;
+      ref_costs_comp[BWDREF_FRAME] = ref_costs_comp[ALTREF2_FRAME] =
+          ref_costs_comp[ALTREF_FRAME] = 0;
 #endif  // CONFIG_EXT_REFS
 
 #if CONFIG_EXT_REFS
@@ -6851,15 +6771,11 @@
       // NOTE(zoeliu): BWDREF and ALTREF each add an extra cost by coding 1
       //               more bit.
       ref_costs_comp[BWDREF_FRAME] += av1_cost_bit(bwdref_comp_p, 0);
-#if CONFIG_ALTREF2
       ref_costs_comp[ALTREF2_FRAME] += av1_cost_bit(bwdref_comp_p, 0);
-#endif  // CONFIG_ALTREF2
       ref_costs_comp[ALTREF_FRAME] += av1_cost_bit(bwdref_comp_p, 1);
 
-#if CONFIG_ALTREF2
       ref_costs_comp[BWDREF_FRAME] += av1_cost_bit(bwdref_comp_p1, 0);
       ref_costs_comp[ALTREF2_FRAME] += av1_cost_bit(bwdref_comp_p1, 1);
-#endif  // CONFIG_ALTREF2
 #else   // !CONFIG_EXT_REFS
       ref_costs_comp[LAST_FRAME] += av1_cost_bit(ref_comp_p, 0);
       ref_costs_comp[GOLDEN_FRAME] += av1_cost_bit(ref_comp_p, 1);
@@ -6882,9 +6798,7 @@
       ref_costs_comp[LAST2_FRAME] = 512;
       ref_costs_comp[LAST3_FRAME] = 512;
       ref_costs_comp[BWDREF_FRAME] = 512;
-#if CONFIG_ALTREF2
       ref_costs_comp[ALTREF2_FRAME] = 512;
-#endif  // CONFIG_ALTREF2
       ref_costs_comp[ALTREF_FRAME] = 512;
 #endif  // CONFIG_EXT_REFS
       ref_costs_comp[GOLDEN_FRAME] = 512;
@@ -10231,9 +10145,7 @@
     AOM_GOLD_FLAG,
 #if CONFIG_EXT_REFS
     AOM_BWD_FLAG,
-#if CONFIG_ALTREF2
     AOM_ALT2_FLAG,
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
     AOM_ALT_FLAG
   };
@@ -10496,10 +10408,7 @@
       ref_frame_skip_mask[0] = (1 << LAST_FRAME) |
 #if CONFIG_EXT_REFS
                                (1 << LAST2_FRAME) | (1 << LAST3_FRAME) |
-                               (1 << BWDREF_FRAME) |
-#if CONFIG_ALTREF2
-                               (1 << ALTREF2_FRAME) |
-#endif  // CONFIG_ALTREF2
+                               (1 << BWDREF_FRAME) | (1 << ALTREF2_FRAME) |
 #endif  // CONFIG_EXT_REFS
                                (1 << GOLDEN_FRAME);
       ref_frame_skip_mask[1] = SECOND_REF_FRAME_MASK;
@@ -10673,12 +10582,10 @@
           ref_frame_skip_mask[0] |= BWDREF_FRAME_MODE_MASK;
           ref_frame_skip_mask[1] |= SECOND_REF_FRAME_MASK;
           break;
-#if CONFIG_ALTREF2
         case ALTREF2_FRAME:
           ref_frame_skip_mask[0] |= ALTREF2_FRAME_MODE_MASK;
           ref_frame_skip_mask[1] |= SECOND_REF_FRAME_MASK;
           break;
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
         case ALTREF_FRAME: ref_frame_skip_mask[0] |= ALTREF_FRAME_MODE_MASK;
 #if CONFIG_EXT_REFS
diff --git a/av1/encoder/temporal_filter.c b/av1/encoder/temporal_filter.c
index f1a2f59..f9304ae 100644
--- a/av1/encoder/temporal_filter.c
+++ b/av1/encoder/temporal_filter.c
@@ -648,17 +648,10 @@
 //                   case it is more beneficial to use non-zero strength
 //                   filtering.
 #if CONFIG_EXT_REFS
-#if CONFIG_ALTREF2
   if (gf_group->update_type[gf_group->index] == INTNL_ARF_UPDATE) {
     strength = 0;
     frames_to_blur = 1;
   }
-#else   // !CONFIG_ALTREF2
-  if (gf_group->rf_level[gf_group->index] == GF_ARF_LOW) {
-    strength = 0;
-    frames_to_blur = 1;
-  }
-#endif  // CONFIG_ALTREF2
 #endif  // CONFIG_EXT_REFS
 
 #if CONFIG_EXT_REFS
diff --git a/configure b/configure
index df467e8..fc96233 100755
--- a/configure
+++ b/configure
@@ -269,7 +269,6 @@
     wedge
     compound_segment
     ext_refs
-    altref2
     speed_refs
     gf_groups
     global_motion
@@ -558,7 +557,6 @@
     enabled bgsprite && enable_feature global_motion
     enabled ext_comp_refs && enable_feature ext_refs
     enabled ext_comp_refs && enable_feature one_sided_compound
-    enabled altref2 && enable_feature ext_refs
     enabled rect_tx_ext && enable_feature rect_tx
     enabled cfl && enable_feature smooth_hv
     enabled cdef_singlepass && enable_feature cdef