Fast Interpolation Filter Search Bug Fix
Fix for bug found from entropy stats.
The result of the vertical filter search was not
being saved, as the line that updated mbmi->
interp_filters was replaced in an earlier patch.
Also removed the unneeded enable dual filter
check, since it was already inside the main
use_fast_interp && enable_dual_filter check.
May cause a slight PSNR drop as evidenced by a
test failure of 28.8975 vs threshold of 29.9 in
AV1/HorzSuperresQThreshEndToEndTest.
HorzSuperresQThreshEndToEndPSNRTest/123.
Borg testing is currently underway.
Change-Id: I1d6659a3fe94f495c7c6e894835465a9a78ae102
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index d82278e..d63f86c 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -6708,8 +6708,8 @@
tmp_skip_sb = 0;
tmp_skip_sse = INT64_MAX;
- if (cm->seq_params.enable_dual_filter == 0)
- if (filter_sets[i][0] != filter_sets[i][1]) continue;
+ mbmi->interp_filters =
+ av1_make_interp_filters(filter_sets[i][0], filter_sets[i][1]);
tmp_rs = av1_get_switchable_rate(cm, x, xd);
av1_build_inter_predictors_sb(cm, xd, mi_row, mi_col, orig_dst,
diff --git a/test/horz_superres_test.cc b/test/horz_superres_test.cc
index 1ccbd4a..529277f 100644
--- a/test/horz_superres_test.cc
+++ b/test/horz_superres_test.cc
@@ -31,7 +31,7 @@
const int kBitrate = 40;
// PSNR thresholds found by experiment
-const double kPSNRThresholds[] = { 27.45, 29.9, 21.7 };
+const double kPSNRThresholds[] = { 27.45, 29.89, 21.7 };
typedef struct {
const char *filename;