Commit 5340d142 authored by Angie Chiang's avatar Angie Chiang Committed by Gerrit Code Review

Merge "Merge 12sharp filter into ext-interp" into nextgenv2

parents ec6b8d8b e4af6a42
......@@ -809,7 +809,17 @@ static const vpx_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
{ 36, 243, 48},
{ 149, 160, 128},
};
#else
#elif CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 5
static const vpx_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
[SWITCHABLE_FILTERS - 1] = {
{ 235, 192, 128, 128},
{ 36, 243, 208, 128},
{ 34, 16, 128, 128},
{ 36, 243, 48, 128},
{ 34, 16, 128, 128},
{ 149, 160, 128, 128},
};
#else // CONFIG_EXT_INTERP
static const vpx_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
[SWITCHABLE_FILTERS - 1] = {
{ 235, 162, },
......@@ -817,7 +827,7 @@ static const vpx_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
{ 34, 3, },
{ 149, 144, },
};
#endif
#endif // CONFIG_EXT_INTERP
#if CONFIG_EXT_TX
const vpx_tree_index vp10_ext_tx_inter_tree[EXT_TX_SETS_INTER]
......@@ -1335,6 +1345,14 @@ const vpx_tree_index vp10_switchable_interp_tree
4, -EIGHTTAP_SHARP,
-EIGHTTAP_SMOOTH, -EIGHTTAP_SMOOTH2,
};
#elif CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 5
const vpx_tree_index vp10_switchable_interp_tree
[TREE_SIZE(SWITCHABLE_FILTERS)] = {
-EIGHTTAP, 2,
4, 6,
-EIGHTTAP_SMOOTH, -EIGHTTAP_SMOOTH2,
-EIGHTTAP_SHARP, -EIGHTTAP_SHARP2,
};
#else
const vpx_tree_index vp10_switchable_interp_tree
[TREE_SIZE(SWITCHABLE_FILTERS)] = {
......
......@@ -12,8 +12,6 @@
#include "vp10/common/filter.h"
#define USE_12_SHARP_FILTER 0
DECLARE_ALIGNED(256, static const InterpKernel,
bilinear_filters[SUBPEL_SHIFTS]) = {
{ 0, 0, 0, 128, 0, 0, 0, 0 },
......@@ -75,29 +73,6 @@ DECLARE_ALIGNED(256, static const InterpKernel,
#endif // CONFIG_EXT_INTERP
};
#if USE_12_SHARP_FILTER
DECLARE_ALIGNED(16, static const int16_t,
sub_pel_filters_12sharp[16][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},
};
#endif // USE_12_SHARP_FILTER
DECLARE_ALIGNED(256, static const InterpKernel,
sub_pel_filters_8sharp[SUBPEL_SHIFTS]) = {
#if CONFIG_EXT_INTERP
......@@ -139,7 +114,7 @@ DECLARE_ALIGNED(256, static const InterpKernel,
#endif // CONFIG_EXT_INTERP
};
#if CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 4
#if CONFIG_EXT_INTERP && (SWITCHABLE_FILTERS == 4 || SWITCHABLE_FILTERS == 5)
DECLARE_ALIGNED(256, static const InterpKernel,
sub_pel_filters_8smooth2[SUBPEL_SHIFTS]) = {
......@@ -183,6 +158,27 @@ DECLARE_ALIGNED(256, static const InterpKernel,
{0, 2, -11, 31, 95, 19, -10, 2},
};
DECLARE_ALIGNED(16, static const int16_t,
sub_pel_filters_12sharp[16][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},
};
#else
DECLARE_ALIGNED(256, static const InterpKernel,
......@@ -214,6 +210,9 @@ const InterpKernel *vp10_filter_kernels[SWITCHABLE_FILTERS + 1] = {
sub_pel_filters_8sharp,
#if CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 4
sub_pel_filters_8smooth2,
#elif CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 5
sub_pel_filters_8smooth2,
(const InterpKernel*)sub_pel_filters_12sharp,
#endif
bilinear_filters
};
......@@ -231,13 +230,12 @@ static const InterpFilterParams
vp10_interp_filter_params_list[SWITCHABLE_FILTERS + 1] = {
{(const int16_t*)sub_pel_filters_8, SUBPEL_TAPS, SUBPEL_SHIFTS},
{(const int16_t*)sub_pel_filters_8smooth, SUBPEL_TAPS, SUBPEL_SHIFTS},
#if USE_12_SHARP_FILTER
{(const int16_t*)sub_pel_filters_12sharp, 12, SUBPEL_SHIFTS},
#else // USE_12_SHARP_FILTER
{(const int16_t*)sub_pel_filters_8sharp, SUBPEL_TAPS, SUBPEL_SHIFTS},
#endif // USE_12_SHARP_FILTER
#if CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 4
{(const int16_t*)sub_pel_filters_8smooth2, SUBPEL_TAPS, SUBPEL_SHIFTS},
#elif CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 5
{(const int16_t*)sub_pel_filters_8smooth2, SUBPEL_TAPS, SUBPEL_SHIFTS},
{(const int16_t*)sub_pel_filters_12sharp, 12, SUBPEL_SHIFTS},
#endif
{(const int16_t*)bilinear_filters, SUBPEL_TAPS, SUBPEL_SHIFTS}
};
......
......@@ -27,8 +27,19 @@ extern "C" {
#if CONFIG_EXT_INTERP
#define SUPPORT_NONINTERPOLATING_FILTERS 0 /* turn it on for experimentation */
#define SWITCHABLE_FILTERS 5 /* Number of switchable filters */
#if SWITCHABLE_FILTERS == 4
#define EIGHTTAP_SMOOTH2 3
#define SWITCHABLE_FILTERS 4 /* Number of switchable filters */
#elif SWITCHABLE_FILTERS == 5
#define EIGHTTAP_SMOOTH2 3
#define EIGHTTAP_SHARP2 4
#endif // SWITCHABLE_FILTERS
#else
#define SWITCHABLE_FILTERS 3 /* Number of switchable filters */
#endif // CONFIG_EXT_INTERP
......
......@@ -42,6 +42,9 @@ static const struct vp10_token intra_mode_encodings[INTRA_MODES] = {
#if CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 4
static const struct vp10_token switchable_interp_encodings[SWITCHABLE_FILTERS] =
{{0, 1}, {4, 3}, {3, 2}, {5, 3}};
#elif CONFIG_EXT_INTERP && SWITCHABLE_FILTERS == 5
static const struct vp10_token switchable_interp_encodings[SWITCHABLE_FILTERS] =
{{0, 1}, {4, 3}, {6, 3}, {5, 3}, {7, 3}};
#else
static const struct vp10_token switchable_interp_encodings[SWITCHABLE_FILTERS] =
{{0, 1}, {2, 2}, {3, 2}};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment