Merge 2 sharp interpolation filters

Compression will drop slightly
       BDRate
lowres -0.096%
midres -0.069%
hdres  -0.084%

However, this will reduce the combinations of filter types needed to search in
dual_filter experiment

Change-Id: I75d4ddc73b91099e17fd52a1b1174bd3d2ab3e18
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index dd1f6f4..83d0822 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -1274,25 +1274,26 @@
 static const aom_prob default_skip_probs[SKIP_CONTEXTS] = { 192, 128, 64 };
 
 #if CONFIG_EXT_INTERP
-static const aom_prob default_switchable_interp_prob
-    [SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = {
+static const aom_prob
+    default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
+                                  [SWITCHABLE_FILTERS - 1] = {
 #if CONFIG_DUAL_FILTER
-      { 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 },
-      { 36, 243, 48, 128 },   { 34, 16, 128, 128 },  { 149, 160, 128, 128 },
-
-      { 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 },
-      { 36, 243, 48, 128 },   { 34, 16, 128, 128 },  { 149, 160, 128, 128 },
-
-      { 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 },
-      { 36, 243, 48, 128 },   { 34, 16, 128, 128 },  { 149, 160, 128, 128 },
-
-      { 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 },
-      { 36, 243, 48, 128 },   { 34, 16, 128, 128 },  { 149, 160, 128, 128 },
+                                    { 235, 192, 128 }, { 36, 243, 48 },
+                                    { 34, 16, 128 },   { 34, 16, 128 },
+                                    { 149, 160, 128 }, { 235, 192, 128 },
+                                    { 36, 243, 48 },   { 34, 16, 128 },
+                                    { 34, 16, 128 },   { 149, 160, 128 },
+                                    { 235, 192, 128 }, { 36, 243, 48 },
+                                    { 34, 16, 128 },   { 34, 16, 128 },
+                                    { 149, 160, 128 }, { 235, 192, 128 },
+                                    { 36, 243, 48 },   { 34, 16, 128 },
+                                    { 34, 16, 128 },   { 149, 160, 128 },
 #else
-      { 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 },
-      { 36, 243, 48, 128 },   { 34, 16, 128, 128 },  { 149, 160, 128, 128 },
+                                    { 235, 192, 128 }, { 36, 243, 48 },
+                                    { 34, 16, 128 },   { 34, 16, 128 },
+                                    { 149, 160, 128 },
 #endif
-    };
+                                  };
 #else  // CONFIG_EXT_INTERP
 #if CONFIG_DUAL_FILTER
 static const aom_prob
@@ -1789,14 +1790,8 @@
 #if CONFIG_EXT_INTERP
 const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] =
     {
-      -EIGHTTAP_REGULAR,
-      2,
-      4,
-      6,
-      -EIGHTTAP_SMOOTH,
+      -EIGHTTAP_REGULAR, 2, 4, -MULTITAP_SHARP, -EIGHTTAP_SMOOTH,
       -EIGHTTAP_SMOOTH2,
-      -MULTITAP_SHARP,
-      -MULTITAP_SHARP2,
     };
 #else
 const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] =
diff --git a/av1/common/filter.c b/av1/common/filter.c
index 21526fc..7445941 100644
--- a/av1/common/filter.c
+++ b/av1/common/filter.c
@@ -78,24 +78,24 @@
 #endif  // CONFIG_EXT_INTRA
 
 DECLARE_ALIGNED(256, static const int16_t,
-                sub_pel_filters_10sharp[SUBPEL_SHIFTS][10]) = {
-  // intfilt 0.77
-  { 0, 0, 0, 0, 128, 0, 0, 0, 0, 0 },
-  { 0, -1, 3, -6, 127, 8, -4, 2, -1, 0 },
-  { 1, -2, 5, -12, 124, 18, -7, 3, -2, 0 },
-  { 1, -3, 7, -17, 119, 28, -11, 5, -2, 1 },
-  { 1, -4, 8, -20, 114, 38, -14, 7, -3, 1 },
-  { 1, -4, 9, -22, 107, 49, -17, 8, -4, 1 },
-  { 2, -5, 10, -24, 99, 59, -20, 9, -4, 2 },
-  { 2, -5, 10, -24, 90, 70, -22, 10, -5, 2 },
-  { 2, -5, 10, -23, 80, 80, -23, 10, -5, 2 },
-  { 2, -5, 10, -22, 70, 90, -24, 10, -5, 2 },
-  { 2, -4, 9, -20, 59, 99, -24, 10, -5, 2 },
-  { 1, -4, 8, -17, 49, 107, -22, 9, -4, 1 },
-  { 1, -3, 7, -14, 38, 114, -20, 8, -4, 1 },
-  { 1, -2, 5, -11, 28, 119, -17, 7, -3, 1 },
-  { 0, -2, 3, -7, 18, 124, -12, 5, -2, 1 },
-  { 0, -1, 2, -4, 8, 127, -6, 3, -1, 0 },
+                sub_pel_filters_12sharp[SUBPEL_SHIFTS][12]) = {
+  // intfilt 0.8
+  { 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0 },
+  { 0, 1, -1, 3, -7, 127, 8, -4, 2, -1, 0, 0 },
+  { 0, 1, -3, 5, -12, 124, 18, -8, 4, -2, 1, 0 },
+  { -1, 2, -4, 8, -17, 120, 28, -11, 6, -3, 1, -1 },
+  { -1, 2, -4, 10, -21, 114, 38, -15, 8, -4, 2, -1 },
+  { -1, 3, -5, 11, -23, 107, 49, -18, 9, -5, 2, -1 },
+  { -1, 3, -6, 12, -25, 99, 60, -21, 11, -6, 3, -1 },
+  { -1, 3, -6, 12, -25, 90, 70, -23, 12, -6, 3, -1 },
+  { -1, 3, -6, 12, -24, 80, 80, -24, 12, -6, 3, -1 },
+  { -1, 3, -6, 12, -23, 70, 90, -25, 12, -6, 3, -1 },
+  { -1, 3, -6, 11, -21, 60, 99, -25, 12, -6, 3, -1 },
+  { -1, 2, -5, 9, -18, 49, 107, -23, 11, -5, 3, -1 },
+  { -1, 2, -4, 8, -15, 38, 114, -21, 10, -4, 2, -1 },
+  { -1, 1, -3, 6, -11, 28, 120, -17, 8, -4, 2, -1 },
+  { 0, 1, -2, 4, -8, 18, 124, -12, 5, -3, 1, 0 },
+  { 0, 0, -1, 2, -4, 8, 127, -7, 3, -1, 1, 0 },
 };
 
 DECLARE_ALIGNED(256, static const InterpKernel,
@@ -123,27 +123,6 @@
   { 0, 1, -12, 49, 90, 5, -7, 2 },  { 1, 1, -12, 43, 92, 9, -8, 2 },
   { 0, 2, -12, 37, 94, 14, -9, 2 }, { 0, 2, -11, 31, 95, 19, -10, 2 },
 };
-
-DECLARE_ALIGNED(16, static const int16_t,
-                sub_pel_filters_12sharp[SUBPEL_SHIFTS][12]) = {
-  // intfilt 0.85
-  { 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0 },
-  { 0, 1, -2, 3, -7, 127, 8, -4, 2, -1, 1, 0 },
-  { -1, 2, -3, 6, -13, 124, 18, -8, 4, -2, 2, -1 },
-  { -1, 3, -4, 8, -18, 120, 28, -12, 7, -4, 2, -1 },
-  { -1, 3, -6, 10, -21, 115, 38, -15, 8, -5, 3, -1 },
-  { -2, 4, -6, 12, -24, 108, 49, -18, 10, -6, 3, -2 },
-  { -2, 4, -7, 13, -25, 100, 60, -21, 11, -7, 4, -2 },
-  { -2, 4, -7, 13, -26, 91, 71, -24, 13, -7, 4, -2 },
-  { -2, 4, -7, 13, -25, 81, 81, -25, 13, -7, 4, -2 },
-  { -2, 4, -7, 13, -24, 71, 91, -26, 13, -7, 4, -2 },
-  { -2, 4, -7, 11, -21, 60, 100, -25, 13, -7, 4, -2 },
-  { -2, 3, -6, 10, -18, 49, 108, -24, 12, -6, 4, -2 },
-  { -1, 3, -5, 8, -15, 38, 115, -21, 10, -6, 3, -1 },
-  { -1, 2, -4, 7, -12, 28, 120, -18, 8, -4, 3, -1 },
-  { -1, 2, -2, 4, -8, 18, 124, -13, 6, -3, 2, -1 },
-  { 0, 1, -1, 2, -4, 8, 127, -7, 3, -2, 1, 0 },
-};
 #else  // CONFIG_EXT_INTERP
 
 DECLARE_ALIGNED(256, static const InterpKernel,
@@ -232,12 +211,10 @@
         EIGHTTAP_REGULAR },
       { (const int16_t *)sub_pel_filters_8smooth, SUBPEL_TAPS, SUBPEL_SHIFTS,
         EIGHTTAP_SMOOTH },
-      { (const int16_t *)sub_pel_filters_10sharp, 10, SUBPEL_SHIFTS,
+      { (const int16_t *)sub_pel_filters_12sharp, 12, SUBPEL_SHIFTS,
         MULTITAP_SHARP },
       { (const int16_t *)sub_pel_filters_8smooth2, SUBPEL_TAPS, SUBPEL_SHIFTS,
         EIGHTTAP_SMOOTH2 },
-      { (const int16_t *)sub_pel_filters_12sharp, 12, SUBPEL_SHIFTS,
-        MULTITAP_SHARP2 },
       { (const int16_t *)bilinear_filters, SUBPEL_TAPS, SUBPEL_SHIFTS,
         BILINEAR }
     };
diff --git a/av1/common/filter.h b/av1/common/filter.h
index eb39a7f..11e7ec2 100644
--- a/av1/common/filter.h
+++ b/av1/common/filter.h
@@ -27,12 +27,11 @@
 
 #if CONFIG_EXT_INTERP
 #define EIGHTTAP_SMOOTH2 3
-#define MULTITAP_SHARP2 4
 
 #define MAX_SUBPEL_TAPS 12
 
 #define SUPPORT_NONINTERPOLATING_FILTERS 0 /* turn on for experimentation */
-#define SWITCHABLE_FILTERS 5               /* Number of switchable filters */
+#define SWITCHABLE_FILTERS 4               /* Number of switchable filters */
 #define LOG_SWITCHABLE_FILTERS \
   3 /* (1 << LOG_SWITCHABLE_FILTERS) > SWITCHABLE_FILTERS */
 #else
diff --git a/av1/common/x86/av1_convolve_ssse3.c b/av1/common/x86/av1_convolve_ssse3.c
index 76e8a42..2bf6afc 100644
--- a/av1/common/x86/av1_convolve_ssse3.c
+++ b/av1/common/x86/av1_convolve_ssse3.c
@@ -21,12 +21,6 @@
 
 #if CONFIG_EXT_INTERP
 DECLARE_ALIGNED(16, static int8_t,
-                sub_pel_filters_10sharp_signal_dir[15][2][16]);
-
-DECLARE_ALIGNED(16, static int8_t,
-                sub_pel_filters_10sharp_ver_signal_dir[15][6][16]);
-
-DECLARE_ALIGNED(16, static int8_t,
                 sub_pel_filters_12sharp_signal_dir[15][2][16]);
 
 DECLARE_ALIGNED(16, static int8_t,
@@ -46,11 +40,8 @@
 static INLINE SubpelFilterCoeffs
 get_subpel_filter_signal_dir(const InterpFilterParams p, int index) {
 #if CONFIG_EXT_INTERP
-  if (p.interp_filter == MULTITAP_SHARP2) {
-    return &sub_pel_filters_12sharp_signal_dir[index][0];
-  }
   if (p.interp_filter == MULTITAP_SHARP) {
-    return &sub_pel_filters_10sharp_signal_dir[index][0];
+    return &sub_pel_filters_12sharp_signal_dir[index][0];
   }
 #endif
 #if USE_TEMPORALFILTER_12TAP
@@ -66,11 +57,8 @@
 static INLINE SubpelFilterCoeffs
 get_subpel_filter_ver_signal_dir(const InterpFilterParams p, int index) {
 #if CONFIG_EXT_INTERP
-  if (p.interp_filter == MULTITAP_SHARP2) {
-    return &sub_pel_filters_12sharp_ver_signal_dir[index][0];
-  }
   if (p.interp_filter == MULTITAP_SHARP) {
-    return &sub_pel_filters_10sharp_ver_signal_dir[index][0];
+    return &sub_pel_filters_12sharp_ver_signal_dir[index][0];
   }
 #endif
 #if USE_TEMPORALFILTER_12TAP
@@ -993,11 +981,9 @@
 } SimdFilter;
 
 #if CONFIG_EXT_INTERP
-#define MULTITAP_FILTER_NUM 2
+#define MULTITAP_FILTER_NUM 1
 SimdFilter simd_filters[MULTITAP_FILTER_NUM] = {
-  { MULTITAP_SHARP, &sub_pel_filters_10sharp_signal_dir[0],
-    &sub_pel_filters_10sharp_ver_signal_dir[0] },
-  { MULTITAP_SHARP2, &sub_pel_filters_12sharp_signal_dir[0],
+  { MULTITAP_SHARP, &sub_pel_filters_12sharp_signal_dir[0],
     &sub_pel_filters_12sharp_ver_signal_dir[0] },
 };
 #endif
diff --git a/av1/common/x86/av1_highbd_convolve_filters_sse4.h b/av1/common/x86/av1_highbd_convolve_filters_sse4.h
index be85657..b3e8596 100644
--- a/av1/common/x86/av1_highbd_convolve_filters_sse4.h
+++ b/av1/common/x86/av1_highbd_convolve_filters_sse4.h
@@ -17,252 +17,125 @@
 #if CONFIG_AOM_HIGHBITDEPTH
 #if CONFIG_EXT_INTERP
 DECLARE_ALIGNED(16, static const int16_t,
-                sub_pel_filters_10sharp_highbd_ver_signal_dir[15][6][8]) = {
-  {
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 127, -6, 127, -6, 127, -6, 127 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -2, 5, -2, 5, -2, 5, -2, 5 },
-      { -12, 124, -12, 124, -12, 124, -12, 124 },
-      { 18, -7, 18, -7, 18, -7, 18, -7 },
-      { 3, -2, 3, -2, 3, -2, 3, -2 },
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -3, 7, -3, 7, -3, 7, -3, 7 },
-      { -17, 119, -17, 119, -17, 119, -17, 119 },
-      { 28, -11, 28, -11, 28, -11, 28, -11 },
-      { 5, -2, 5, -2, 5, -2, 5, -2 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { -20, 114, -20, 114, -20, 114, -20, 114 },
-      { 38, -14, 38, -14, 38, -14, 38, -14 },
-      { 7, -3, 7, -3, 7, -3, 7, -3 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -4, 9, -4, 9, -4, 9, -4, 9 },
-      { -22, 107, -22, 107, -22, 107, -22, 107 },
-      { 49, -17, 49, -17, 49, -17, 49, -17 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 2, 0, 2, 0, 2, 0, 2 },
-      { -5, 10, -5, 10, -5, 10, -5, 10 },
-      { -24, 99, -24, 99, -24, 99, -24, 99 },
-      { 59, -20, 59, -20, 59, -20, 59, -20 },
-      { 9, -4, 9, -4, 9, -4, 9, -4 },
-      { 2, 0, 2, 0, 2, 0, 2, 0 },
-  },
-  {
-      { 0, 2, 0, 2, 0, 2, 0, 2 },
-      { -5, 10, -5, 10, -5, 10, -5, 10 },
-      { -24, 90, -24, 90, -24, 90, -24, 90 },
-      { 70, -22, 70, -22, 70, -22, 70, -22 },
-      { 10, -5, 10, -5, 10, -5, 10, -5 },
-      { 2, 0, 2, 0, 2, 0, 2, 0 },
-  },
-  {
-      { 0, 2, 0, 2, 0, 2, 0, 2 },
-      { -5, 10, -5, 10, -5, 10, -5, 10 },
-      { -23, 80, -23, 80, -23, 80, -23, 80 },
-      { 80, -23, 80, -23, 80, -23, 80, -23 },
-      { 10, -5, 10, -5, 10, -5, 10, -5 },
-      { 2, 0, 2, 0, 2, 0, 2, 0 },
-  },
-  {
-      { 0, 2, 0, 2, 0, 2, 0, 2 },
-      { -5, 10, -5, 10, -5, 10, -5, 10 },
-      { -22, 70, -22, 70, -22, 70, -22, 70 },
-      { 90, -24, 90, -24, 90, -24, 90, -24 },
-      { 10, -5, 10, -5, 10, -5, 10, -5 },
-      { 2, 0, 2, 0, 2, 0, 2, 0 },
-  },
-  {
-      { 0, 2, 0, 2, 0, 2, 0, 2 },
-      { -4, 9, -4, 9, -4, 9, -4, 9 },
-      { -20, 59, -20, 59, -20, 59, -20, 59 },
-      { 99, -24, 99, -24, 99, -24, 99, -24 },
-      { 10, -5, 10, -5, 10, -5, 10, -5 },
-      { 2, 0, 2, 0, 2, 0, 2, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { -17, 49, -17, 49, -17, 49, -17, 49 },
-      { 107, -22, 107, -22, 107, -22, 107, -22 },
-      { 9, -4, 9, -4, 9, -4, 9, -4 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -3, 7, -3, 7, -3, 7, -3, 7 },
-      { -14, 38, -14, 38, -14, 38, -14, 38 },
-      { 114, -20, 114, -20, 114, -20, 114, -20 },
-      { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -2, 5, -2, 5, -2, 5, -2, 5 },
-      { -11, 28, -11, 28, -11, 28, -11, 28 },
-      { 119, -17, 119, -17, 119, -17, 119, -17 },
-      { 7, -3, 7, -3, 7, -3, 7, -3 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-      { -2, 3, -2, 3, -2, 3, -2, 3 },
-      { -7, 18, -7, 18, -7, 18, -7, 18 },
-      { 124, -12, 124, -12, 124, -12, 124, -12 },
-      { 5, -2, 5, -2, 5, -2, 5, -2 },
-      { 1, 0, 1, 0, 1, 0, 1, 0 },
-  },
-  {
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { 127, -6, 127, -6, 127, -6, 127, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-      { 0, 0, 0, 0, 0, 0, 0, 0 },
-  },
-};
-#endif
-#endif
-#if CONFIG_AOM_HIGHBITDEPTH
-#if CONFIG_EXT_INTERP
-DECLARE_ALIGNED(16, static const int16_t,
                 sub_pel_filters_12sharp_highbd_ver_signal_dir[15][6][8]) = {
   {
       { 0, 1, 0, 1, 0, 1, 0, 1 },
-      { -2, 3, -2, 3, -2, 3, -2, 3 },
+      { -1, 3, -1, 3, -1, 3, -1, 3 },
       { -7, 127, -7, 127, -7, 127, -7, 127 },
       { 8, -4, 8, -4, 8, -4, 8, -4 },
       { 2, -1, 2, -1, 2, -1, 2, -1 },
+      { 0, 0, 0, 0, 0, 0, 0, 0 },
+  },
+  {
+      { 0, 1, 0, 1, 0, 1, 0, 1 },
+      { -3, 5, -3, 5, -3, 5, -3, 5 },
+      { -12, 124, -12, 124, -12, 124, -12, 124 },
+      { 18, -8, 18, -8, 18, -8, 18, -8 },
+      { 4, -2, 4, -2, 4, -2, 4, -2 },
       { 1, 0, 1, 0, 1, 0, 1, 0 },
   },
   {
       { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -3, 6, -3, 6, -3, 6, -3, 6 },
-      { -13, 124, -13, 124, -13, 124, -13, 124 },
-      { 18, -8, 18, -8, 18, -8, 18, -8 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
-      { 2, -1, 2, -1, 2, -1, 2, -1 },
-  },
-  {
-      { -1, 3, -1, 3, -1, 3, -1, 3 },
       { -4, 8, -4, 8, -4, 8, -4, 8 },
-      { -18, 120, -18, 120, -18, 120, -18, 120 },
-      { 28, -12, 28, -12, 28, -12, 28, -12 },
-      { 7, -4, 7, -4, 7, -4, 7, -4 },
+      { -17, 120, -17, 120, -17, 120, -17, 120 },
+      { 28, -11, 28, -11, 28, -11, 28, -11 },
+      { 6, -3, 6, -3, 6, -3, 6, -3 },
+      { 1, -1, 1, -1, 1, -1, 1, -1 },
+  },
+  {
+      { -1, 2, -1, 2, -1, 2, -1, 2 },
+      { -4, 10, -4, 10, -4, 10, -4, 10 },
+      { -21, 114, -21, 114, -21, 114, -21, 114 },
+      { 38, -15, 38, -15, 38, -15, 38, -15 },
+      { 8, -4, 8, -4, 8, -4, 8, -4 },
       { 2, -1, 2, -1, 2, -1, 2, -1 },
   },
   {
       { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -6, 10, -6, 10, -6, 10, -6, 10 },
-      { -21, 115, -21, 115, -21, 115, -21, 115 },
-      { 38, -15, 38, -15, 38, -15, 38, -15 },
-      { 8, -5, 8, -5, 8, -5, 8, -5 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -6, 12, -6, 12, -6, 12, -6, 12 },
-      { -24, 108, -24, 108, -24, 108, -24, 108 },
+      { -5, 11, -5, 11, -5, 11, -5, 11 },
+      { -23, 107, -23, 107, -23, 107, -23, 107 },
       { 49, -18, 49, -18, 49, -18, 49, -18 },
-      { 10, -6, 10, -6, 10, -6, 10, -6 },
-      { 3, -2, 3, -2, 3, -2, 3, -2 },
-  },
-  {
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -7, 13, -7, 13, -7, 13, -7, 13 },
-      { -25, 100, -25, 100, -25, 100, -25, 100 },
-      { 60, -21, 60, -21, 60, -21, 60, -21 },
-      { 11, -7, 11, -7, 11, -7, 11, -7 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
-  },
-  {
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -7, 13, -7, 13, -7, 13, -7, 13 },
-      { -26, 91, -26, 91, -26, 91, -26, 91 },
-      { 71, -24, 71, -24, 71, -24, 71, -24 },
-      { 13, -7, 13, -7, 13, -7, 13, -7 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
-  },
-  {
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -7, 13, -7, 13, -7, 13, -7, 13 },
-      { -25, 81, -25, 81, -25, 81, -25, 81 },
-      { 81, -25, 81, -25, 81, -25, 81, -25 },
-      { 13, -7, 13, -7, 13, -7, 13, -7 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
-  },
-  {
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -7, 13, -7, 13, -7, 13, -7, 13 },
-      { -24, 71, -24, 71, -24, 71, -24, 71 },
-      { 91, -26, 91, -26, 91, -26, 91, -26 },
-      { 13, -7, 13, -7, 13, -7, 13, -7 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
-  },
-  {
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -7, 11, -7, 11, -7, 11, -7, 11 },
-      { -21, 60, -21, 60, -21, 60, -21, 60 },
-      { 100, -25, 100, -25, 100, -25, 100, -25 },
-      { 13, -7, 13, -7, 13, -7, 13, -7 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
-  },
-  {
-      { -2, 3, -2, 3, -2, 3, -2, 3 },
-      { -6, 10, -6, 10, -6, 10, -6, 10 },
-      { -18, 49, -18, 49, -18, 49, -18, 49 },
-      { 108, -24, 108, -24, 108, -24, 108, -24 },
-      { 12, -6, 12, -6, 12, -6, 12, -6 },
-      { 4, -2, 4, -2, 4, -2, 4, -2 },
+      { 9, -5, 9, -5, 9, -5, 9, -5 },
+      { 2, -1, 2, -1, 2, -1, 2, -1 },
   },
   {
       { -1, 3, -1, 3, -1, 3, -1, 3 },
-      { -5, 8, -5, 8, -5, 8, -5, 8 },
+      { -6, 12, -6, 12, -6, 12, -6, 12 },
+      { -25, 99, -25, 99, -25, 99, -25, 99 },
+      { 60, -21, 60, -21, 60, -21, 60, -21 },
+      { 11, -6, 11, -6, 11, -6, 11, -6 },
+      { 3, -1, 3, -1, 3, -1, 3, -1 },
+  },
+  {
+      { -1, 3, -1, 3, -1, 3, -1, 3 },
+      { -6, 12, -6, 12, -6, 12, -6, 12 },
+      { -25, 90, -25, 90, -25, 90, -25, 90 },
+      { 70, -23, 70, -23, 70, -23, 70, -23 },
+      { 12, -6, 12, -6, 12, -6, 12, -6 },
+      { 3, -1, 3, -1, 3, -1, 3, -1 },
+  },
+  {
+      { -1, 3, -1, 3, -1, 3, -1, 3 },
+      { -6, 12, -6, 12, -6, 12, -6, 12 },
+      { -24, 80, -24, 80, -24, 80, -24, 80 },
+      { 80, -24, 80, -24, 80, -24, 80, -24 },
+      { 12, -6, 12, -6, 12, -6, 12, -6 },
+      { 3, -1, 3, -1, 3, -1, 3, -1 },
+  },
+  {
+      { -1, 3, -1, 3, -1, 3, -1, 3 },
+      { -6, 12, -6, 12, -6, 12, -6, 12 },
+      { -23, 70, -23, 70, -23, 70, -23, 70 },
+      { 90, -25, 90, -25, 90, -25, 90, -25 },
+      { 12, -6, 12, -6, 12, -6, 12, -6 },
+      { 3, -1, 3, -1, 3, -1, 3, -1 },
+  },
+  {
+      { -1, 3, -1, 3, -1, 3, -1, 3 },
+      { -6, 11, -6, 11, -6, 11, -6, 11 },
+      { -21, 60, -21, 60, -21, 60, -21, 60 },
+      { 99, -25, 99, -25, 99, -25, 99, -25 },
+      { 12, -6, 12, -6, 12, -6, 12, -6 },
+      { 3, -1, 3, -1, 3, -1, 3, -1 },
+  },
+  {
+      { -1, 2, -1, 2, -1, 2, -1, 2 },
+      { -5, 9, -5, 9, -5, 9, -5, 9 },
+      { -18, 49, -18, 49, -18, 49, -18, 49 },
+      { 107, -23, 107, -23, 107, -23, 107, -23 },
+      { 11, -5, 11, -5, 11, -5, 11, -5 },
+      { 3, -1, 3, -1, 3, -1, 3, -1 },
+  },
+  {
+      { -1, 2, -1, 2, -1, 2, -1, 2 },
+      { -4, 8, -4, 8, -4, 8, -4, 8 },
       { -15, 38, -15, 38, -15, 38, -15, 38 },
-      { 115, -21, 115, -21, 115, -21, 115, -21 },
-      { 10, -6, 10, -6, 10, -6, 10, -6 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
+      { 114, -21, 114, -21, 114, -21, 114, -21 },
+      { 10, -4, 10, -4, 10, -4, 10, -4 },
+      { 2, -1, 2, -1, 2, -1, 2, -1 },
   },
   {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -4, 7, -4, 7, -4, 7, -4, 7 },
-      { -12, 28, -12, 28, -12, 28, -12, 28 },
-      { 120, -18, 120, -18, 120, -18, 120, -18 },
+      { -1, 1, -1, 1, -1, 1, -1, 1 },
+      { -3, 6, -3, 6, -3, 6, -3, 6 },
+      { -11, 28, -11, 28, -11, 28, -11, 28 },
+      { 120, -17, 120, -17, 120, -17, 120, -17 },
       { 8, -4, 8, -4, 8, -4, 8, -4 },
-      { 3, -1, 3, -1, 3, -1, 3, -1 },
-  },
-  {
-      { -1, 2, -1, 2, -1, 2, -1, 2 },
-      { -2, 4, -2, 4, -2, 4, -2, 4 },
-      { -8, 18, -8, 18, -8, 18, -8, 18 },
-      { 124, -13, 124, -13, 124, -13, 124, -13 },
-      { 6, -3, 6, -3, 6, -3, 6, -3 },
       { 2, -1, 2, -1, 2, -1, 2, -1 },
   },
   {
       { 0, 1, 0, 1, 0, 1, 0, 1 },
+      { -2, 4, -2, 4, -2, 4, -2, 4 },
+      { -8, 18, -8, 18, -8, 18, -8, 18 },
+      { 124, -12, 124, -12, 124, -12, 124, -12 },
+      { 5, -3, 5, -3, 5, -3, 5, -3 },
+      { 1, 0, 1, 0, 1, 0, 1, 0 },
+  },
+  {
+      { 0, 0, 0, 0, 0, 0, 0, 0 },
       { -1, 2, -1, 2, -1, 2, -1, 2 },
       { -4, 8, -4, 8, -4, 8, -4, 8 },
       { 127, -7, 127, -7, 127, -7, 127, -7 },
-      { 3, -2, 3, -2, 3, -2, 3, -2 },
+      { 3, -1, 3, -1, 3, -1, 3, -1 },
       { 1, 0, 1, 0, 1, 0, 1, 0 },
   },
 };
diff --git a/av1/common/x86/av1_highbd_convolve_sse4.c b/av1/common/x86/av1_highbd_convolve_sse4.c
index 9b5ef25..adc142d 100644
--- a/av1/common/x86/av1_highbd_convolve_sse4.c
+++ b/av1/common/x86/av1_highbd_convolve_sse4.c
@@ -25,11 +25,8 @@
 static INLINE HbdSubpelFilterCoeffs
 hbd_get_subpel_filter_ver_signal_dir(const InterpFilterParams p, int index) {
 #if CONFIG_EXT_INTERP
-  if (p.interp_filter == MULTITAP_SHARP2) {
-    return &sub_pel_filters_12sharp_highbd_ver_signal_dir[index][0];
-  }
   if (p.interp_filter == MULTITAP_SHARP) {
-    return &sub_pel_filters_10sharp_highbd_ver_signal_dir[index][0];
+    return &sub_pel_filters_12sharp_highbd_ver_signal_dir[index][0];
   }
 #endif
 #if USE_TEMPORALFILTER_12TAP
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 5132271..b97797c 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -56,10 +56,9 @@
 #define DUAL_FILTER_SET_SIZE (SWITCHABLE_FILTERS * SWITCHABLE_FILTERS)
 #if CONFIG_EXT_INTERP
 static const int filter_sets[DUAL_FILTER_SET_SIZE][2] = {
-  { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { 0, 4 }, { 1, 0 }, { 1, 1 },
-  { 1, 2 }, { 1, 3 }, { 1, 4 }, { 2, 0 }, { 2, 1 }, { 2, 2 }, { 2, 3 },
-  { 2, 4 }, { 3, 0 }, { 3, 1 }, { 3, 2 }, { 3, 3 }, { 3, 4 }, { 4, 0 },
-  { 4, 1 }, { 4, 2 }, { 4, 3 }, { 4, 4 },
+  { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { 1, 0 }, { 1, 1 },
+  { 1, 2 }, { 1, 3 }, { 2, 0 }, { 2, 1 }, { 2, 2 }, { 2, 3 },
+  { 3, 0 }, { 3, 1 }, { 3, 2 }, { 3, 3 },
 };
 #else   // CONFIG_EXT_INTERP
 static const int filter_sets[DUAL_FILTER_SET_SIZE][2] = {