Replacing cpu_used with speed in VP9_CONFIG.
Change-Id: I86b85b5c11388e84a48f8936330c0d920df5d1f0
This commit is contained in:
@@ -911,7 +911,7 @@ static int get_twopass_worst_quality(const VP9_COMP *cpi,
|
|||||||
const int num_mbs = cpi->common.MBs;
|
const int num_mbs = cpi->common.MBs;
|
||||||
const double section_err = stats->coded_error / stats->count;
|
const double section_err = stats->coded_error / stats->count;
|
||||||
const double err_per_mb = section_err / num_mbs;
|
const double err_per_mb = section_err / num_mbs;
|
||||||
const double speed_term = 1.0 + 0.04 * cpi->speed;
|
const double speed_term = 1.0 + 0.04 * cpi->oxcf.speed;
|
||||||
const int target_norm_bits_per_mb = ((uint64_t)section_target_bandwidth <<
|
const int target_norm_bits_per_mb = ((uint64_t)section_target_bandwidth <<
|
||||||
BPER_MB_NORMBITS) / num_mbs;
|
BPER_MB_NORMBITS) / num_mbs;
|
||||||
int q;
|
int q;
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ static unsigned int do_16x16_motion_iteration(VP9_COMP *cpi,
|
|||||||
|
|
||||||
// Further step/diamond searches as necessary
|
// Further step/diamond searches as necessary
|
||||||
int step_param = cpi->sf.reduce_first_step_size +
|
int step_param = cpi->sf.reduce_first_step_size +
|
||||||
(cpi->speed < 8 ? (cpi->speed > 5 ? 1 : 0) : 2);
|
(cpi->oxcf.speed > 5 ? 1 : 0);
|
||||||
step_param = MIN(step_param, (cpi->sf.max_step_search_steps - 2));
|
step_param = MIN(step_param, cpi->sf.max_step_search_steps - 2);
|
||||||
|
|
||||||
vp9_set_mv_search_range(x, ref_mv);
|
vp9_set_mv_search_range(x, ref_mv);
|
||||||
|
|
||||||
|
|||||||
@@ -705,14 +705,10 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9_CONFIG *oxcf) {
|
|||||||
|
|
||||||
cpi->oxcf = *oxcf;
|
cpi->oxcf = *oxcf;
|
||||||
|
|
||||||
if (cpi->oxcf.cpu_used == -6)
|
|
||||||
cpi->oxcf.play_alternate = 0;
|
|
||||||
|
|
||||||
switch (cpi->oxcf.mode) {
|
switch (cpi->oxcf.mode) {
|
||||||
// Real time and one pass deprecated in test code base
|
// Real time and one pass deprecated in test code base
|
||||||
case ONE_PASS_GOOD:
|
case ONE_PASS_GOOD:
|
||||||
cpi->pass = 0;
|
cpi->pass = 0;
|
||||||
cpi->oxcf.cpu_used = clamp(cpi->oxcf.cpu_used, -5, 5);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ONE_PASS_BEST:
|
case ONE_PASS_BEST:
|
||||||
@@ -725,7 +721,6 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9_CONFIG *oxcf) {
|
|||||||
|
|
||||||
case TWO_PASS_SECOND_GOOD:
|
case TWO_PASS_SECOND_GOOD:
|
||||||
cpi->pass = 2;
|
cpi->pass = 2;
|
||||||
cpi->oxcf.cpu_used = clamp(cpi->oxcf.cpu_used, -5, 5);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TWO_PASS_SECOND_BEST:
|
case TWO_PASS_SECOND_BEST:
|
||||||
@@ -734,6 +729,7 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9_CONFIG *oxcf) {
|
|||||||
|
|
||||||
case REALTIME:
|
case REALTIME:
|
||||||
cpi->pass = 0;
|
cpi->pass = 0;
|
||||||
|
cpi->oxcf.play_alternate = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -833,8 +829,6 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9_CONFIG *oxcf) {
|
|||||||
(int)cpi->oxcf.target_bandwidth);
|
(int)cpi->oxcf.target_bandwidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
cpi->speed = abs(cpi->oxcf.cpu_used);
|
|
||||||
|
|
||||||
#if CONFIG_MULTIPLE_ARF
|
#if CONFIG_MULTIPLE_ARF
|
||||||
vp9_zero(cpi->alt_ref_source);
|
vp9_zero(cpi->alt_ref_source);
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ typedef struct VP9_CONFIG {
|
|||||||
|
|
||||||
int noise_sensitivity; // pre processing blur: recommendation 0
|
int noise_sensitivity; // pre processing blur: recommendation 0
|
||||||
int sharpness; // sharpening output: recommendation 0:
|
int sharpness; // sharpening output: recommendation 0:
|
||||||
int cpu_used;
|
int speed;
|
||||||
unsigned int rc_max_intra_bitrate_pct;
|
unsigned int rc_max_intra_bitrate_pct;
|
||||||
|
|
||||||
MODE mode;
|
MODE mode;
|
||||||
@@ -402,10 +402,6 @@ typedef struct VP9_COMP {
|
|||||||
int mbgraph_n_frames; // number of frames filled in the above
|
int mbgraph_n_frames; // number of frames filled in the above
|
||||||
int static_mb_pct; // % forced skip mbs by segmentation
|
int static_mb_pct; // % forced skip mbs by segmentation
|
||||||
|
|
||||||
// for real time encoding
|
|
||||||
int speed;
|
|
||||||
|
|
||||||
int cpu_used;
|
|
||||||
int pass;
|
int pass;
|
||||||
|
|
||||||
int ref_frame_flags;
|
int ref_frame_flags;
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ static void model_rd_for_sb(VP9_COMP *cpi, BLOCK_SIZE bsize,
|
|||||||
x->pred_sse[ref] = sse;
|
x->pred_sse[ref] = sse;
|
||||||
|
|
||||||
// Fast approximate the modelling function.
|
// Fast approximate the modelling function.
|
||||||
if (cpi->speed > 4) {
|
if (cpi->oxcf.speed > 4) {
|
||||||
int64_t rate;
|
int64_t rate;
|
||||||
int64_t dist;
|
int64_t dist;
|
||||||
int64_t square_error = sse;
|
int64_t square_error = sse;
|
||||||
|
|||||||
@@ -289,7 +289,6 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
|
|||||||
SPEED_FEATURES *const sf = &cpi->sf;
|
SPEED_FEATURES *const sf = &cpi->sf;
|
||||||
VP9_COMMON *const cm = &cpi->common;
|
VP9_COMMON *const cm = &cpi->common;
|
||||||
const VP9_CONFIG *const oxcf = &cpi->oxcf;
|
const VP9_CONFIG *const oxcf = &cpi->oxcf;
|
||||||
const int speed = cpi->speed < 0 ? -cpi->speed : cpi->speed;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
// best quality defaults
|
// best quality defaults
|
||||||
@@ -360,10 +359,10 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
|
|||||||
case TWO_PASS_FIRST:
|
case TWO_PASS_FIRST:
|
||||||
case ONE_PASS_GOOD:
|
case ONE_PASS_GOOD:
|
||||||
case TWO_PASS_SECOND_GOOD:
|
case TWO_PASS_SECOND_GOOD:
|
||||||
set_good_speed_feature(cpi, cm, sf, speed);
|
set_good_speed_feature(cpi, cm, sf, oxcf->speed);
|
||||||
break;
|
break;
|
||||||
case REALTIME:
|
case REALTIME:
|
||||||
set_rt_speed_feature(cm, sf, speed);
|
set_rt_speed_feature(cm, sf, oxcf->speed);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -151,12 +151,8 @@ static int temporal_filter_find_matching_mb_c(VP9_COMP *cpi,
|
|||||||
xd->plane[0].pre[0].buf = frame_ptr_buf;
|
xd->plane[0].pre[0].buf = frame_ptr_buf;
|
||||||
xd->plane[0].pre[0].stride = stride;
|
xd->plane[0].pre[0].stride = stride;
|
||||||
|
|
||||||
// Further step/diamond searches as necessary
|
step_param = cpi->sf.reduce_first_step_size + (cpi->oxcf.speed > 5 ? 1 : 0);
|
||||||
if (cpi->speed < 8)
|
step_param = MIN(step_param, cpi->sf.max_step_search_steps - 2);
|
||||||
step_param = cpi->sf.reduce_first_step_size + ((cpi->speed > 5) ? 1 : 0);
|
|
||||||
else
|
|
||||||
step_param = cpi->sf.reduce_first_step_size + 2;
|
|
||||||
step_param = MIN(step_param, (cpi->sf.max_step_search_steps - 2));
|
|
||||||
|
|
||||||
/*cpi->sf.search_method == HEX*/
|
/*cpi->sf.search_method == HEX*/
|
||||||
// Ignore mv costing by sending NULL pointer instead of cost arrays
|
// Ignore mv costing by sending NULL pointer instead of cost arrays
|
||||||
|
|||||||
@@ -356,7 +356,7 @@ static vpx_codec_err_t set_encoder_config(
|
|||||||
|
|
||||||
oxcf->key_freq = cfg->kf_max_dist;
|
oxcf->key_freq = cfg->kf_max_dist;
|
||||||
|
|
||||||
oxcf->cpu_used = extra_cfg->cpu_used;
|
oxcf->speed = clamp(abs(extra_cfg->cpu_used), 0, 7);
|
||||||
oxcf->encode_breakout = extra_cfg->static_thresh;
|
oxcf->encode_breakout = extra_cfg->static_thresh;
|
||||||
oxcf->play_alternate = extra_cfg->enable_auto_alt_ref;
|
oxcf->play_alternate = extra_cfg->enable_auto_alt_ref;
|
||||||
oxcf->noise_sensitivity = extra_cfg->noise_sensitivity;
|
oxcf->noise_sensitivity = extra_cfg->noise_sensitivity;
|
||||||
|
|||||||
Reference in New Issue
Block a user