ref: e9ba43543522f0fd2822627b2cb384119d1d17f2
parent: 0257168c77791b804568ceaba429ac6f40bc55c7
parent: bb071af390bc60c0d540dac441c7f519404b81cf
author: Yunqing Wang <[email protected]>
date: Tue Oct 23 18:29:46 EDT 2018
Merge "Use 8-tap interp filter in temporal filtering"
--- a/vp9/encoder/vp9_mcomp.c
+++ b/vp9/encoder/vp9_mcomp.c
@@ -763,11 +763,14 @@
// TODO(yunqing): need to add 4-tap filter optimization to speed up the
// encoder.
- const InterpKernel *kernel = (use_accurate_subpel_search > 0)
- ? ((use_accurate_subpel_search == USE_4_TAPS)
- ? vp9_filter_kernels[FOURTAP]
- : vp9_filter_kernels[EIGHTTAP])
- : vp9_filter_kernels[BILINEAR];
+ const InterpKernel *kernel =
+ (use_accurate_subpel_search > 0)
+ ? ((use_accurate_subpel_search == USE_4_TAPS)
+ ? vp9_filter_kernels[FOURTAP]
+ : ((use_accurate_subpel_search == USE_8_TAPS)
+ ? vp9_filter_kernels[EIGHTTAP]
+ : vp9_filter_kernels[EIGHTTAP_SHARP]))
+ : vp9_filter_kernels[BILINEAR];
vp9_set_subpel_mv_search_range(&subpel_mv_limits, &x->mv_limits, ref_mv);
minc = subpel_mv_limits.col_min;
--- a/vp9/encoder/vp9_speed_features.h
+++ b/vp9/encoder/vp9_speed_features.h
@@ -247,6 +247,7 @@
USE_2_TAPS = 0,
USE_4_TAPS,
USE_8_TAPS,
+ USE_8_TAPS_SHARP,
} SUBPEL_SEARCH_TYPE;
typedef struct SPEED_FEATURES {
--- a/vp9/encoder/vp9_temporal_filter.c
+++ b/vp9/encoder/vp9_temporal_filter.c
@@ -428,8 +428,8 @@
bestsme = cpi->find_fractional_mv_step(
x, ref_mv, &best_ref_mv1, cpi->common.allow_high_precision_mv,
x->errorperbit, &cpi->fn_ptr[BLOCK_16X16], 0, mv_sf->subpel_search_level,
- cond_cost_list(cpi, cost_list), NULL, NULL, &distortion, &sse, NULL, 0, 0,
- USE_2_TAPS);
+ cond_cost_list(cpi, cost_list), NULL, NULL, &distortion, &sse, NULL, 16,
+ 16, USE_8_TAPS_SHARP);
// Restore input state
x->plane[0].src = src;