diff --git a/configure b/configure
index 372e2594c585a2bb2e4305e9f33ebfb9b7a8d39e..9ebe3d78700b2a956328a703d4df0c8888e43112 100755
--- a/configure
+++ b/configure
@@ -250,6 +250,7 @@ EXPERIMENT_LIST="
     multiple_arf
     code_zerogroup
     non420
+    ab4x4
 "
 CONFIG_LIST="
     external_build
diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h
index 97bb33e2ed8e24ef700bc6a10c848e3b6d162c27..3bd222110236d0bdaf8917d87ae7bde78635e9c4 100644
--- a/vp9/common/vp9_blockd.h
+++ b/vp9/common/vp9_blockd.h
@@ -192,7 +192,13 @@ typedef enum {
 
 static INLINE int b_width_log2(BLOCK_SIZE_TYPE sb_type) {
   switch (sb_type) {
+#if CONFIG_AB4X4
+    case BLOCK_SIZE_SB4X8:
+#endif
     case BLOCK_SIZE_AB4X4: return 0;
+#if CONFIG_AB4X4
+    case BLOCK_SIZE_SB8X4:
+#endif
     case BLOCK_SIZE_SB8X8:
     case BLOCK_SIZE_SB8X16: return 1;
     case BLOCK_SIZE_SB16X8:
@@ -209,7 +215,13 @@ static INLINE int b_width_log2(BLOCK_SIZE_TYPE sb_type) {
 
 static INLINE int b_height_log2(BLOCK_SIZE_TYPE sb_type) {
   switch (sb_type) {
+#if CONFIG_AB4X4
+    case BLOCK_SIZE_SB8X4:
+#endif
     case BLOCK_SIZE_AB4X4: return 0;
+#if CONFIG_AB4X4
+    case BLOCK_SIZE_SB4X8:
+#endif
     case BLOCK_SIZE_SB8X8:
     case BLOCK_SIZE_SB16X8: return 1;
     case BLOCK_SIZE_SB8X16:
diff --git a/vp9/common/vp9_enums.h b/vp9/common/vp9_enums.h
index 51454c14ac91b739fa6ac903812eef276867b238..b00d892044bfc27c78d0bc2295791ba90fa2c772 100644
--- a/vp9/common/vp9_enums.h
+++ b/vp9/common/vp9_enums.h
@@ -20,6 +20,10 @@
 
 typedef enum BLOCK_SIZE_TYPE {
   BLOCK_SIZE_AB4X4,
+#if CONFIG_AB4X4
+  BLOCK_SIZE_SB4X8,
+  BLOCK_SIZE_SB8X4,
+#endif
   BLOCK_SIZE_SB8X8,
   BLOCK_SIZE_SB8X16,
   BLOCK_SIZE_SB16X8,
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 28df6f80266c9224e366a96936f80efbcdc94e4c..e0d4bc837ad2e6533b0d389f65560aa45fff51a4 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2602,14 +2602,10 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
     mbmi->interp_filter = cm->mcomp_filter_type;
     vp9_setup_interp_filters(xd, mbmi->interp_filter, &cpi->common);
 
-    // if (!(cpi->ref_frame_flags & flag_list[ref_frame]))
-    //  continue;
-
     if (bsize != BLOCK_SIZE_SB8X8 &&
         (this_mode == I4X4_PRED || this_mode == SPLITMV))
       continue;
-    //  if (vp9_mode_order[mode_index].second_ref_frame == INTRA_FRAME)
-    //  continue;
+
 
     if (comp_pred) {
       if (ref_frame == ALTREF_FRAME) {