Revert "rtc-svc: Set the multi-threading per spatial layer"
This reverts commit 8c7bc8035aaaaf5c28bff20be6ab92d888822b1b.
But keep the changes to the svc_datarate_test.c
Reason for revert:
With the recent fixes to MT for RTC, this change forcing 1 thread for lower resolutions is not needed. Performance is little better now with allowing MT for all spatial layers.
Change-Id: Ie2142f0d824abbfde440e9d99650a4b84ae142d8
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index ac85960..5b03354 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -2289,8 +2289,6 @@
num_workers = av1_fp_compute_num_enc_workers(cpi);
#endif
} else {
- if (cpi->use_svc && cpi->svc.number_spatial_layers > 1)
- av1_svc_set_mt_per_spatial_layer(cpi);
av1_compute_num_workers_for_mt(cpi);
num_workers = av1_get_max_num_workers(cpi);
}
diff --git a/av1/encoder/svc_layercontext.c b/av1/encoder/svc_layercontext.c
index 650ec27..1710920 100644
--- a/av1/encoder/svc_layercontext.c
+++ b/av1/encoder/svc_layercontext.c
@@ -80,9 +80,6 @@
}
svc->downsample_filter_type[sl] = BILINEAR;
svc->downsample_filter_phase[sl] = 8;
- svc->max_threads[sl] = 1;
- svc->tile_columns[sl] = 0;
- svc->tile_rows[sl] = 0;
}
if (svc->number_spatial_layers == 3) {
svc->downsample_filter_type[0] = EIGHTTAP_SMOOTH;
@@ -126,17 +123,6 @@
lrc->worst_quality = av1_quantizer_to_qindex(lc->max_q);
lrc->best_quality = av1_quantizer_to_qindex(lc->min_q);
}
- // The user settings of mult-threading are only applied to top
- // spatial layer for now, keep lower spatial layers at 1 thread.
- if (sl == svc->number_spatial_layers - 1) {
- svc->max_threads[sl] = cpi->oxcf.max_threads;
- svc->tile_columns[sl] = cpi->oxcf.tile_cfg.tile_columns;
- svc->tile_rows[sl] = cpi->oxcf.tile_cfg.tile_rows;
- } else {
- svc->max_threads[sl] = 1;
- svc->tile_columns[sl] = 0;
- svc->tile_rows[sl] = 0;
- }
}
}
@@ -356,10 +342,3 @@
cpi->common.height = height;
av1_update_frame_size(cpi);
}
-
-void av1_svc_set_mt_per_spatial_layer(AV1_COMP *const cpi) {
- int sl = cpi->svc.spatial_layer_id;
- cpi->oxcf.max_threads = cpi->svc.max_threads[sl];
- cpi->oxcf.tile_cfg.tile_columns = cpi->svc.tile_columns[sl];
- cpi->oxcf.tile_cfg.tile_rows = cpi->svc.tile_rows[sl];
-}
diff --git a/av1/encoder/svc_layercontext.h b/av1/encoder/svc_layercontext.h
index b28c301..1eeba5e 100644
--- a/av1/encoder/svc_layercontext.h
+++ b/av1/encoder/svc_layercontext.h
@@ -138,21 +138,6 @@
* Force zero-mv in mode search for the spatial/inter-layer reference.
*/
int force_zero_mode_spatial_ref;
-
- /*!
- * max threads per spatial layer.
- */
- int max_threads[AOM_MAX_SS_LAYERS];
-
- /*!
- * tile columns per spatial layer.
- */
- int tile_columns[AOM_MAX_SS_LAYERS];
-
- /*!
- * tile rows per spatial layer.
- */
- int tile_rows[AOM_MAX_SS_LAYERS];
} SVC;
struct AV1_COMP;
@@ -286,17 +271,6 @@
void av1_get_layer_resolution(const int width_org, const int height_org,
const int num, const int den, int *width_out,
int *height_out);
-
-/*!\brief Set multi-threading for the current spatial layer.
- *
- * \ingroup SVC
- * \param[in] cpi Top level encoder structure
- *
- * \return Nothing is returned. Instead the max_threads, tile_columns and
- tile_rows are set for the current spatial layer.
- */
-void av1_svc_set_mt_per_spatial_layer(struct AV1_COMP *const cpi);
-
#ifdef __cplusplus
} // extern "C"
#endif