Commit d91ab373 authored by Angie Chiang's avatar Angie Chiang
Browse files

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
parent e067de00
...@@ -1274,25 +1274,26 @@ static const aom_prob default_txfm_partition_probs[TXFM_PARTITION_CONTEXTS] = { ...@@ -1274,25 +1274,26 @@ static const aom_prob default_txfm_partition_probs[TXFM_PARTITION_CONTEXTS] = {
static const aom_prob default_skip_probs[SKIP_CONTEXTS] = { 192, 128, 64 }; static const aom_prob default_skip_probs[SKIP_CONTEXTS] = { 192, 128, 64 };
#if CONFIG_EXT_INTERP #if CONFIG_EXT_INTERP
static const aom_prob default_switchable_interp_prob static const aom_prob
[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS - 1] = { default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
[SWITCHABLE_FILTERS - 1] = {
#if CONFIG_DUAL_FILTER #if CONFIG_DUAL_FILTER
{ 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 }, { 235, 192, 128 }, { 36, 243, 48 },
{ 36, 243, 48, 128 }, { 34, 16, 128, 128 }, { 149, 160, 128, 128 }, { 34, 16, 128 }, { 34, 16, 128 },
{ 149, 160, 128 }, { 235, 192, 128 },
{ 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 }, { 36, 243, 48 }, { 34, 16, 128 },
{ 36, 243, 48, 128 }, { 34, 16, 128, 128 }, { 149, 160, 128, 128 }, { 34, 16, 128 }, { 149, 160, 128 },
{ 235, 192, 128 }, { 36, 243, 48 },
{ 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 }, { 34, 16, 128 }, { 34, 16, 128 },
{ 36, 243, 48, 128 }, { 34, 16, 128, 128 }, { 149, 160, 128, 128 }, { 149, 160, 128 }, { 235, 192, 128 },
{ 36, 243, 48 }, { 34, 16, 128 },
{ 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 }, { 34, 16, 128 }, { 149, 160, 128 },
{ 36, 243, 48, 128 }, { 34, 16, 128, 128 }, { 149, 160, 128, 128 },
#else #else
{ 235, 192, 128, 128 }, { 36, 243, 208, 128 }, { 34, 16, 128, 128 }, { 235, 192, 128 }, { 36, 243, 48 },
{ 36, 243, 48, 128 }, { 34, 16, 128, 128 }, { 149, 160, 128, 128 }, { 34, 16, 128 }, { 34, 16, 128 },
{ 149, 160, 128 },
#endif #endif
}; };
#else // CONFIG_EXT_INTERP #else // CONFIG_EXT_INTERP
#if CONFIG_DUAL_FILTER #if CONFIG_DUAL_FILTER
static const aom_prob static const aom_prob
...@@ -1789,14 +1790,8 @@ void av1_set_mode_cdfs(struct AV1Common *cm) { ...@@ -1789,14 +1790,8 @@ void av1_set_mode_cdfs(struct AV1Common *cm) {
#if CONFIG_EXT_INTERP #if CONFIG_EXT_INTERP
const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] = const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] =
{ {
-EIGHTTAP_REGULAR, -EIGHTTAP_REGULAR, 2, 4, -MULTITAP_SHARP, -EIGHTTAP_SMOOTH,
2,
4,
6,
-EIGHTTAP_SMOOTH,
-EIGHTTAP_SMOOTH2, -EIGHTTAP_SMOOTH2,
-MULTITAP_SHARP,
-MULTITAP_SHARP2,
}; };
#else #else
const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] = const aom_tree_index av1_switchable_interp_tree[TREE_SIZE(SWITCHABLE_FILTERS)] =
......
...@@ -78,24 +78,24 @@ DECLARE_ALIGNED(256, static const InterpKernel, ...@@ -78,24 +78,24 @@ DECLARE_ALIGNED(256, static const InterpKernel,
#endif // CONFIG_EXT_INTRA #endif // CONFIG_EXT_INTRA
DECLARE_ALIGNED(256, static const int16_t, DECLARE_ALIGNED(256, static const int16_t,
sub_pel_filters_10sharp[SUBPEL_SHIFTS][10]) = { sub_pel_filters_12sharp[SUBPEL_SHIFTS][12]) = {
// intfilt 0.77 // intfilt 0.8
{ 0, 0, 0, 0, 128, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0 },
{ 0, -1, 3, -6, 127, 8, -4, 2, -1, 0 }, { 0, 1, -1, 3, -7, 127, 8, -4, 2, -1, 0, 0 },
{ 1, -2, 5, -12, 124, 18, -7, 3, -2, 0 }, { 0, 1, -3, 5, -12, 124, 18, -8, 4, -2, 1, 0 },
{ 1, -3, 7, -17, 119, 28, -11, 5, -2, 1 }, { -1, 2, -4, 8, -17, 120, 28, -11, 6, -3, 1, -1 },
{ 1, -4, 8, -20, 114, 38, -14, 7, -3, 1 }, { -1, 2, -4, 10, -21, 114, 38, -15, 8, -4, 2, -1 },
{ 1, -4, 9, -22, 107, 49, -17, 8, -4, 1 }, { -1, 3, -5, 11, -23, 107, 49, -18, 9, -5, 2, -1 },
{ 2, -5, 10, -24, 99, 59, -20, 9, -4, 2 }, { -1, 3, -6, 12, -25, 99, 60, -21, 11, -6, 3, -1 },
{ 2, -5, 10, -24, 90, 70, -22, 10, -5, 2 }, { -1, 3, -6, 12, -25, 90, 70, -23, 12, -6, 3, -1 },
{ 2, -5, 10, -23, 80, 80, -23, 10, -5, 2 }, { -1, 3, -6, 12, -24, 80, 80, -24, 12, -6, 3, -1 },
{ 2, -5, 10, -22, 70, 90, -24, 10, -5, 2 }, { -1, 3, -6, 12, -23, 70, 90, -25, 12, -6, 3, -1 },
{ 2, -4, 9, -20, 59, 99, -24, 10, -5, 2 }, { -1, 3, -6, 11, -21, 60, 99, -25, 12, -6, 3, -1 },
{ 1, -4, 8, -17, 49, 107, -22, 9, -4, 1 }, { -1, 2, -5, 9, -18, 49, 107, -23, 11, -5, 3, -1 },
{ 1, -3, 7, -14, 38, 114, -20, 8, -4, 1 }, { -1, 2, -4, 8, -15, 38, 114, -21, 10, -4, 2, -1 },
{ 1, -2, 5, -11, 28, 119, -17, 7, -3, 1 }, { -1, 1, -3, 6, -11, 28, 120, -17, 8, -4, 2, -1 },
{ 0, -2, 3, -7, 18, 124, -12, 5, -2, 1 }, { 0, 1, -2, 4, -8, 18, 124, -12, 5, -3, 1, 0 },
{ 0, -1, 2, -4, 8, 127, -6, 3, -1, 0 }, { 0, 0, -1, 2, -4, 8, 127, -7, 3, -1, 1, 0 },
}; };
DECLARE_ALIGNED(256, static const InterpKernel, DECLARE_ALIGNED(256, static const InterpKernel,
...@@ -123,27 +123,6 @@ DECLARE_ALIGNED(256, static const InterpKernel, ...@@ -123,27 +123,6 @@ DECLARE_ALIGNED(256, static const InterpKernel,
{ 0, 1, -12, 49, 90, 5, -7, 2 }, { 1, 1, -12, 43, 92, 9, -8, 2 }, { 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 }, { 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 #else // CONFIG_EXT_INTERP
DECLARE_ALIGNED(256, static const InterpKernel, DECLARE_ALIGNED(256, static const InterpKernel,
...@@ -232,12 +211,10 @@ static const InterpFilterParams ...@@ -232,12 +211,10 @@ static const InterpFilterParams
EIGHTTAP_REGULAR }, EIGHTTAP_REGULAR },
{ (const int16_t *)sub_pel_filters_8smooth, SUBPEL_TAPS, SUBPEL_SHIFTS, { (const int16_t *)sub_pel_filters_8smooth, SUBPEL_TAPS, SUBPEL_SHIFTS,
EIGHTTAP_SMOOTH }, EIGHTTAP_SMOOTH },
{ (const int16_t *)sub_pel_filters_10sharp, 10, SUBPEL_SHIFTS, { (const int16_t *)sub_pel_filters_12sharp, 12, SUBPEL_SHIFTS,
MULTITAP_SHARP }, MULTITAP_SHARP },
{ (const int16_t *)sub_pel_filters_8smooth2, SUBPEL_TAPS, SUBPEL_SHIFTS, { (const int16_t *)sub_pel_filters_8smooth2, SUBPEL_TAPS, SUBPEL_SHIFTS,
EIGHTTAP_SMOOTH2 }, EIGHTTAP_SMOOTH2 },
{ (const int16_t *)sub_pel_filters_12sharp, 12, SUBPEL_SHIFTS,
MULTITAP_SHARP2 },
{ (const int16_t *)bilinear_filters, SUBPEL_TAPS, SUBPEL_SHIFTS, { (const int16_t *)bilinear_filters, SUBPEL_TAPS, SUBPEL_SHIFTS,
BILINEAR } BILINEAR }
}; };
......
...@@ -27,12 +27,11 @@ extern "C" { ...@@ -27,12 +27,11 @@ extern "C" {
#if CONFIG_EXT_INTERP #if CONFIG_EXT_INTERP
#define EIGHTTAP_SMOOTH2 3 #define EIGHTTAP_SMOOTH2 3
#define MULTITAP_SHARP2 4
#define MAX_SUBPEL_TAPS 12 #define MAX_SUBPEL_TAPS 12
#define SUPPORT_NONINTERPOLATING_FILTERS 0 /* turn on for experimentation */ #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 \ #define LOG_SWITCHABLE_FILTERS \
3 /* (1 << LOG_SWITCHABLE_FILTERS) > SWITCHABLE_FILTERS */ 3 /* (1 << LOG_SWITCHABLE_FILTERS) > SWITCHABLE_FILTERS */
#else #else
......
...@@ -20,12 +20,6 @@ ...@@ -20,12 +20,6 @@
#define HEIGHT_BOUND (16) #define HEIGHT_BOUND (16)
#if CONFIG_EXT_INTERP #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, DECLARE_ALIGNED(16, static int8_t,
sub_pel_filters_12sharp_signal_dir[15][2][16]); sub_pel_filters_12sharp_signal_dir[15][2][16]);
...@@ -46,11 +40,8 @@ typedef int8_t (*SubpelFilterCoeffs)[16]; ...@@ -46,11 +40,8 @@ typedef int8_t (*SubpelFilterCoeffs)[16];
static INLINE SubpelFilterCoeffs static INLINE SubpelFilterCoeffs
get_subpel_filter_signal_dir(const InterpFilterParams p, int index) { get_subpel_filter_signal_dir(const InterpFilterParams p, int index) {
#if CONFIG_EXT_INTERP #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) { 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 #endif
#if USE_TEMPORALFILTER_12TAP #if USE_TEMPORALFILTER_12TAP
...@@ -66,11 +57,8 @@ get_subpel_filter_signal_dir(const InterpFilterParams p, int index) { ...@@ -66,11 +57,8 @@ get_subpel_filter_signal_dir(const InterpFilterParams p, int index) {
static INLINE SubpelFilterCoeffs static INLINE SubpelFilterCoeffs
get_subpel_filter_ver_signal_dir(const InterpFilterParams p, int index) { get_subpel_filter_ver_signal_dir(const InterpFilterParams p, int index) {
#if CONFIG_EXT_INTERP #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) { 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 #endif
#if USE_TEMPORALFILTER_12TAP #if USE_TEMPORALFILTER_12TAP
...@@ -993,11 +981,9 @@ typedef struct SimdFilter { ...@@ -993,11 +981,9 @@ typedef struct SimdFilter {
} SimdFilter; } SimdFilter;
#if CONFIG_EXT_INTERP #if CONFIG_EXT_INTERP
#define MULTITAP_FILTER_NUM 2 #define MULTITAP_FILTER_NUM 1
SimdFilter simd_filters[MULTITAP_FILTER_NUM] = { SimdFilter simd_filters[MULTITAP_FILTER_NUM] = {
{ MULTITAP_SHARP, &sub_pel_filters_10sharp_signal_dir[0], { MULTITAP_SHARP, &sub_pel_filters_12sharp_signal_dir[0],
&sub_pel_filters_10sharp_ver_signal_dir[0] },
{ MULTITAP_SHARP2, &sub_pel_filters_12sharp_signal_dir[0],
&sub_pel_filters_12sharp_ver_signal_dir[0] }, &sub_pel_filters_12sharp_ver_signal_dir[0] },
}; };
#endif #endif
......
...@@ -17,252 +17,125 @@ ...@@ -17,252 +17,125 @@
#if CONFIG_AOM_HIGHBITDEPTH #if CONFIG_AOM_HIGHBITDEPTH
#if CONFIG_EXT_INTERP #if CONFIG_EXT_INTERP
DECLARE_ALIGNED(16, static const int16_t, DECLARE_ALIGNED(16, static const int16_t,
sub_pel_filters_10sharp_highbd_ver_signal_dir[15][6][8]) = { sub_pel_filters_12sharp_highbd_ver_signal_dir[15][6][8]) = {
{ {
{ 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 1, 0, 1, 0, 1 },
{ -1, 3, -1, 3, -1, 3, -1, 3 }, { -1, 3, -1, 3, -1, 3, -1, 3 },
{ -6, 127, -6, 127, -6, 127, -6, 127 }, { -7, 127, -7, 127, -7, 127, -7, 127 },
{ 8, -4, 8, -4, 8, -4, 8, -4 }, { 8, -4, 8, -4, 8, -4, 8, -4 },
{ 2, -1, 2, -1, 2, -1, 2, -1 }, { 2, -1, 2, -1, 2, -1, 2, -1 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0 },
}, },
{ {
{ 0, 1, 0, 1, 0, 1, 0, 1 }, { 0, 1, 0, 1, 0, 1, 0, 1 },
{ -2, 5, -2, 5, -2, 5, -2, 5 }, { -3, 5, -3, 5, -3, 5, -3, 5 },
{ -12, 124, -12, 124, -12, 124, -12, 124 }, { -12, 124, -12, 124, -12, 124, -12, 124 },
{ 18, -7, 18, -7, 18, -7, 18, -7 }, { 18, -8, 18, -8, 18, -8, 18, -8 },
{ 3, -2, 3, -2, 3, -2, 3, -2 }, { 4, -2, 4, -2, 4, -2, 4, -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 }, { 1, 0, 1, 0, 1, 0, 1, 0 },
}, },
{ {
{ 0, 0, 0, 0, 0, 0, 0, 0 },
{ -1, 2, -1, 2, -1, 2, -1, 2 }, { -1, 2, -1, 2, -1, 2, -1, 2 },
{ -4, 8, -4, 8, -4, 8, -4, 8 }, { -4, 8, -4, 8, -4, 8, -4, 8 },
{ 127, -6, 127, -6, 127, -6, 127, -6 }, { -17, 120, -17, 120, -17, 120, -17, 120 },
{ 3, -1, 3, -1, 3, -1, 3, -1 }, { 28, -11, 28, -11, 28, -11, 28, -11 },
{ 0, 0, 0, 0, 0, 0, 0, 0 }, { 6, -3, 6, -3, 6, -3, 6, -3 },
}, { 1, -1, 1, -1, 1, -1, 1, -1 },
};
#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 },
{ -7, 127, -7, 127, -7, 127, -7, 127 },
{ 8, -4, 8, -4, 8, -4, 8, -4 },
{ 2, -1, 2, -1, 2, -1, 2, -1 },
{ 1, 0, 1, 0, 1, 0, 1, 0 },
}, },
{ {
{ -1, 2, -1, 2, -1, 2, -1, 2 }, { -1, 2, -1, 2, -1, 2, -1, 2 },
{ -3, 6, -3, 6, -3, 6, -3, 6 }, { -4, 10, -4, 10, -4, 10, -4, 10 },
{ -13, 124, -13, 124, -13, 124, -13, 124 }, { -21, 114, -21, 114, -21, 114, -21, 114 },
{ 18, -8, 18, -8, 18, -8, 18, -8 }, { 38, -15, 38, -15, 38, -15, 38, -15 },
{ 4, -2, 4, -2, 4, -2, 4, -2 }, { 8, -4, 8, -4, 8, -4, 8, -4 },
{ 2, -1, 2, -1, 2, -1, 2, -1 }, { 2, -1, 2, -1, 2, -1, 2, -1 },
}, },
{ {
{ -1, 3, -1, 3, -1, 3, -1, 3 }, { -1, 3, -1, 3, -1, 3, -1, 3 },
{ -4, 8, -4, 8, -4, 8, -4, 8 }, { -5, 11, -5, 11, -5, 11, -5, 11 },
{ -18, 120, -18, 120, -18, 120, -18, 120 }, { -23, 107, -23, 107, -23, 107, -23, 107 },
{ 28, -12, 28, -12, 28, -12, 28, -12 }, { 49, -18, 49, -18, 49, -18, 49, -18 },
{ 7, -4, 7, -4, 7, -4, 7, -4 }, { 9, -5, 9, -5, 9, -5, 9, -5 },
{ 2, -1, 2, -1, 2, -1, 2, -1 }, { 2, -1, 2, -1, 2, -1, 2, -1 },
}, },
{ {
{ -1, 3, -1, 3, -1, 3, -1, 3 }, { -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 }, { -6, 12, -6, 12, -6, 12, -6, 12 },
{ -24, 108, -24, 108, -24, 108, -24, 108 }, { -25, 99, -25, 99, -25, 99, -25, 99 },
{ 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 }, { 60, -21, 60, -21, 60, -21, 60, -21 },
{ 11, -7, 11, -7, 11, -7, 11, -7 }, { 11, -6, 11, -6, 11, -6, 11, -6 },
{ 4, -2, 4, -2, 4, -2, 4, -2 }, { 3, -1, 3, -1, 3, -1, 3, -1 },
}, },
{ {
{ -2, 4, -2, 4, -2, 4, -2, 4 }, { -1, 3, -1, 3, -1, 3, -1, 3 },
{ -7, 13, -7, 13, -7, 13, -7, 13 }, { -6, 12, -6, 12, -6, 12, -6, 12 },
{ -26, 91, -26, 91, -26, 91, -26, 91 }, { -25, 90, -25, 90, -25, 90, -25, 90 },
{ 71, -24, 71, -24, 71, -24, 71, -24 }, { 70, -23, 70, -23, 70, -23, 70, -23 },
{ 13, -7, 13, -7, 13, -7, 13, -7 }, { 12, -6, 12, -6, 12, -6, 12, -6 },
{ 4, -2, 4, -2, 4, -2, 4, -2 }, { 3, -1, 3, -1, 3, -1, 3, -1 },
}, },
{ {
{ -2, 4, -2, 4, -2, 4, -2, 4 }, { -1, 3, -1, 3, -1, 3, -1, 3 },
{ -7, 13, -7, 13, -7, 13, -7, 13 }, { -6, 12, -6, 12, -6, 12, -6, 12 },
{ -25, 81, -25, 81, -25, 81, -25, 81 }, { -24, 80, -24, 80, -24, 80, -24, 80 },
{ 81, -25, 81, -25, 81, -25, 81, -25 }, { 80, -24, 80, -24, 80, -24, 80, -24 },
{ 13, -7, 13, -7, 13, -7, 13, -7 }, { 12, -6, 12, -6, 12, -6, 12, -6 },
{ 4, -2, 4, -2, 4, -2, 4, -2 }, { 3, -1, 3, -1, 3, -1, 3, -1 },
}, },
{ {
{ -2, 4, -2, 4, -2, 4, -2, 4 }, { -1, 3, -1, 3, -1, 3, -1, 3 },
{ -7, 13, -7, 13, -7, 13, -7, 13 }, { -6, 12, -6, 12, -6, 12, -6, 12 },
{ -24, 71, -24, 71, -24, 71, -24, 71 }, { -23, 70, -23, 70, -23, 70, -23, 70 },
{ 91, -26, 91, -26, 91, -26, 9