Prune sgr serarch for screen content
Pruned sgr filter search for screen content at speed 2 by enabling
prune_sgr_based_on_wiener feature. A small speedup was seen. The
average quality & speed changes for screen contents are given below.
avg_psnr ovr_psnr ssim speedup %
0.002 0.010 0.121 0.46
BUG=aomedia:2711
STATS_CHANGED
Change-Id: I20fd788b743bdb12508bee4e1ba6cced055409bf
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 117e5d0..94a0b5d 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -439,7 +439,7 @@
sf->rd_sf.perform_coeff_opt = is_boosted_arf2_bwd_type ? 3 : 4;
sf->lpf_sf.prune_wiener_based_on_src_var = 1;
- sf->lpf_sf.prune_sgr_based_on_wiener = !allow_screen_content_tools;
+ sf->lpf_sf.prune_sgr_based_on_wiener = 1;
}
if (speed >= 3) {
@@ -506,7 +506,9 @@
: 2;
// TODO(any): evaluate if these lpf features can be moved to speed 2.
- sf->lpf_sf.prune_sgr_based_on_wiener = allow_screen_content_tools ? 0 : 2;
+ // For screen content, "prune_sgr_based_on_wiener = 2" cause large quality
+ // loss.
+ sf->lpf_sf.prune_sgr_based_on_wiener = allow_screen_content_tools ? 1 : 2;
sf->lpf_sf.disable_loop_restoration_chroma = boosted ? 0 : 1;
sf->lpf_sf.reduce_wiener_window_size = !boosted;
sf->lpf_sf.prune_wiener_based_on_src_var = 2;