From: Angie Chiang Date: Fri, 5 Feb 2016 19:05:56 +0000 (-0800) Subject: Experiment: use 12 taps for sharp filter X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9d3fbe0c59ec58bd14d7c7fb260af6e26050c72;p=libvpx Experiment: use 12 taps for sharp filter Set USE_12_SHARP_FILTER to 1 to turn on the experiment The psnr percentages increase derf stdhd lowbd +0.332 +0.318 highbd +0.476 +0.507 Change-Id: I783c0fc764ee8541645e100453c9b2073924e209 --- diff --git a/vp10/common/filter.c b/vp10/common/filter.c index 4176e036a..a3aa3cf67 100644 --- a/vp10/common/filter.c +++ b/vp10/common/filter.c @@ -12,6 +12,8 @@ #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 }, @@ -73,6 +75,29 @@ 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 @@ -206,7 +231,11 @@ 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}, #endif