]> granicus.if.org Git - libvpx/commitdiff
Add temporal model control as a speed feature
authorJingning Han <jingning@google.com>
Thu, 14 Jun 2018 17:04:03 +0000 (10:04 -0700)
committerJingning Han <jingning@google.com>
Thu, 14 Jun 2018 18:30:28 +0000 (11:30 -0700)
The model construction would incur 15% slowdown for speed 2. The
speed change on speed 0 is unnoticeable.

The current speed features set up would DISABLE temporal dependency
model for all speed settings.

Change-Id: Ic45dd962f3a54a8f5f0452502dc05e352dc09ca1

vp9/encoder/vp9_speed_features.c
vp9/encoder/vp9_speed_features.h

index 09d45b769eca1e89ab903a1841f033942f749a08..8005f4ea5b98cbf1a5184477712b2852c7c0dbc9 100644 (file)
@@ -183,6 +183,7 @@ static void set_good_speed_feature_framesize_independent(VP9_COMP *cpi,
   }
 
   if (speed >= 1) {
+    sf->enable_tpl_model = 0;
     if (oxcf->pass == 2) {
       TWO_PASS *const twopass = &cpi->twopass;
       if ((twopass->fr_content_type == FC_GRAPHICS_ANIMATION) ||
@@ -377,6 +378,7 @@ static void set_rt_speed_feature_framesize_independent(
   sf->re_encode_overshoot_rt = 0;
   sf->disable_16x16part_nonkey = 0;
   sf->disable_golden_ref = 0;
+  sf->enable_tpl_model = 0;
 
   if (speed >= 1) {
     sf->allow_txfm_domain_distortion = 1;
@@ -810,6 +812,7 @@ void vp9_set_speed_features_framesize_independent(VP9_COMP *cpi) {
   sf->allow_quant_coeff_opt = sf->optimize_coefficients;
   sf->quant_opt_thresh = 99.0;
   sf->allow_acl = 1;
+  sf->enable_tpl_model = 0;
 
   for (i = 0; i < TX_SIZES; i++) {
     sf->intra_y_mode_mask[i] = INTRA_ALL;
index 251cfdbcdf13bd943939f0e24f7923b51ad4081d..f468fba85f2e05b45f18780fec919b924c57da46 100644 (file)
@@ -274,6 +274,9 @@ typedef struct SPEED_FEATURES {
   // alternate reference frames.
   int allow_acl;
 
+  // Temporal dependency model based encoding mode optimization
+  int enable_tpl_model;
+
   // Use transform domain distortion. Use pixel domain distortion in speed 0
   // and certain situations in higher speed to improve the RD model precision.
   int allow_txfm_domain_distortion;