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