From c827c59eafac8f03933c33a0dfa8deceed2a8255 Mon Sep 17 00:00:00 2001 From: Alex Converse Date: Thu, 30 Jul 2015 13:52:02 -0700 Subject: [PATCH] Convert simple_model_rd_from_var from a speed check to a speed feature. Change-Id: I8877025e172fff29bc4e270790211463b676b4d7 --- vp9/encoder/vp9_rdopt.c | 2 +- vp9/encoder/vp9_speed_features.c | 3 +++ vp9/encoder/vp9_speed_features.h | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index 2a16ce7..04543bf 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -237,7 +237,7 @@ static void model_rd_for_sb(VP9_COMP *cpi, BLOCK_SIZE bsize, total_sse += sum_sse; // Fast approximate the modelling function. - if (cpi->oxcf.speed > 4) { + if (cpi->sf.simple_model_rd_from_var) { int64_t rate; const int64_t square_error = sum_sse; int quantizer = (pd->dequant[1] >> 3); diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index bf06fd0..440f81e 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -193,6 +193,7 @@ static void set_good_speed_feature(VP9_COMP *cpi, VP9_COMMON *cm, sf->use_fast_coef_costing = 1; sf->motion_field_mode_search = !boosted; sf->partition_search_breakout_rate_thr = 300; + sf->simple_model_rd_from_var = 1; } if (speed >= 5) { @@ -335,6 +336,7 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf, sf->inter_mode_mask[BLOCK_64X64] = INTER_NEAREST; sf->max_intra_bsize = BLOCK_32X32; sf->allow_skip_recode = 1; + sf->simple_model_rd_from_var = 1; } if (speed >= 5) { @@ -507,6 +509,7 @@ void vp9_set_speed_features_framesize_independent(VP9_COMP *cpi) { sf->tx_size_search_breakout = 0; sf->partition_search_breakout_dist_thr = 0; sf->partition_search_breakout_rate_thr = 0; + sf->simple_model_rd_from_var = 0; if (oxcf->mode == REALTIME) set_rt_speed_feature(cpi, sf, oxcf->speed, oxcf->content); diff --git a/vp9/encoder/vp9_speed_features.h b/vp9/encoder/vp9_speed_features.h index 8575638..95038ce 100644 --- a/vp9/encoder/vp9_speed_features.h +++ b/vp9/encoder/vp9_speed_features.h @@ -415,6 +415,9 @@ typedef struct SPEED_FEATURES { // Allow skipping partition search for still image frame int allow_partition_search_skip; + + // Fast approximation of vp9_model_rd_from_var_lapndz + int simple_model_rd_from_var; } SPEED_FEATURES; struct VP9_COMP; -- 2.7.4