vp9 svc frame drop: enable adaptive rd for row mt.

adaptive_rd_threshold_mt is set to 1 when speed >= 7 for SVC.
QVGA in SVC uses speed 5 which set adaptive_rd_threshold_mt to 0.
If VGA or HD is dropped for the last super frame, the flag is still 0
when the encoder is destroyed. Thus memory won't be released.

Change the bitrate threshold in datarate test.

Change-Id: I55352cc0b030568d38eb735d99c2fa29058d3690
This commit is contained in:
Jerome Jiang 2018-03-20 15:39:02 -07:00
parent 4a20caef78
commit 1ae97b4a4d
3 changed files with 4 additions and 11 deletions

View File

@ -2230,7 +2230,7 @@ TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc3SL3TL4Threads) {
layer_target_avg_bandwidth_, bits_in_buffer_model_);
ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
CheckLayerRateTargeting(&cfg_, number_spatial_layers_,
number_temporal_layers_, file_datarate_, 0.75, 1.2);
number_temporal_layers_, file_datarate_, 0.73, 1.2);
#if CONFIG_VP9_DECODER
// The non-reference frames are expected to be mismatched frames as the
// encoder will avoid loopfilter on these frames.

View File

@ -146,11 +146,9 @@ void vp9_row_mt_mem_dealloc(VP9_COMP *cpi) {
TileDataEnc *this_tile =
&cpi->tile_data[tile_row * multi_thread_ctxt->allocated_tile_cols +
tile_col];
if (cpi->sf.adaptive_rd_thresh_row_mt) {
if (this_tile->row_base_thresh_freq_fact != NULL) {
vpx_free(this_tile->row_base_thresh_freq_fact);
this_tile->row_base_thresh_freq_fact = NULL;
}
if (this_tile->row_base_thresh_freq_fact != NULL) {
vpx_free(this_tile->row_base_thresh_freq_fact);
this_tile->row_base_thresh_freq_fact = NULL;
}
}
}

View File

@ -667,11 +667,6 @@ static void set_rt_speed_feature_framesize_independent(
(uint8_t *)vpx_calloc((cm->mi_stride >> 3) * ((cm->mi_rows >> 3) + 1),
sizeof(*cpi->count_lastgolden_frame_usage));
}
// Disable adaptive_rd_thresh for row_mt for SVC with frame dropping.
// This is causing some tests to fail.
// TODO(marpan/jianj): Look into this failure and re-enable later.
if (cpi->use_svc && cpi->oxcf.drop_frames_water_mark)
sf->adaptive_rd_thresh_row_mt = 0;
}
void vp9_set_speed_features_framesize_dependent(VP9_COMP *cpi) {