Add speed feature for gm parameter selection threshold
This controls the threshold for accepting a global motion model.
Being more selective with the warping error threshold causes the
recode loop to be triggered fewer times. We observe the following
speedups:
Speed 0: 16% speedup, no loss in quality on cam_lowres
Speed 1: 20% speedup, 0.07% loss in quality on cam_lowres
Speed 2: 37% speedup, 0.113% loss in quality on cam_lowres
Change-Id: Ie82ecfa035122feaa76f05588b348ace2c01ff6b
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index 4867c37..6d82381 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -279,6 +279,12 @@
} GM_SEARCH_TYPE;
typedef enum {
+ GM_ERRORADV_TR_0,
+ GM_ERRORADV_TR_1,
+ GM_ERRORADV_TR_2,
+} GM_ERRORADV_TYPE;
+
+typedef enum {
NO_TRELLIS_OPT, // No trellis optimization
FULL_TRELLIS_OPT, // Trellis optimization in all stages
FINAL_PASS_TRELLIS_OPT // Trellis optimization in only the final encode pass
@@ -300,6 +306,9 @@
// Trellis (dynamic programming) optimization of quantized values
TRELLIS_OPT_TYPE optimize_coefficients;
+ // Global motion warp error threshold
+ GM_ERRORADV_TYPE gm_erroradv_type;
+
// Always set to 0. If on it enables 0 cost background transmission
// (except for the initial transmission of the segmentation). The feature is
// disabled because the addition of very large block sizes make the