Deprecate refresh_alt2_ref_frame flag
Refactor the control flow and remove refresh_alt2_ref_frame flag.
Change-Id: I231f437f4e4a169b17962f3e970ec0baac4976e5
diff --git a/av1/encoder/encode_strategy.c b/av1/encoder/encode_strategy.c
index 6bd325a..12dd2aa 100644
--- a/av1/encoder/encode_strategy.c
+++ b/av1/encoder/encode_strategy.c
@@ -50,7 +50,6 @@
frame_params->refresh_last_frame = 1;
frame_params->refresh_golden_frame = 1;
frame_params->refresh_bwd_ref_frame = 1;
- frame_params->refresh_alt2_ref_frame = 1;
frame_params->refresh_alt_ref_frame = 1;
break;
@@ -58,7 +57,6 @@
frame_params->refresh_last_frame = 1;
frame_params->refresh_golden_frame = 0;
frame_params->refresh_bwd_ref_frame = 0;
- frame_params->refresh_alt2_ref_frame = 0;
frame_params->refresh_alt_ref_frame = 0;
break;
@@ -68,7 +66,6 @@
frame_params->refresh_last_frame = 1;
frame_params->refresh_golden_frame = 1;
frame_params->refresh_bwd_ref_frame = 0;
- frame_params->refresh_alt2_ref_frame = 0;
frame_params->refresh_alt_ref_frame = 0;
break;
@@ -76,7 +73,6 @@
frame_params->refresh_last_frame = 0;
frame_params->refresh_golden_frame = 1;
frame_params->refresh_bwd_ref_frame = 0;
- frame_params->refresh_alt2_ref_frame = 0;
frame_params->refresh_alt_ref_frame = 0;
cpi->rc.is_src_frame_alt_ref = 1;
@@ -87,7 +83,6 @@
frame_params->refresh_golden_frame = 0;
// NOTE: BWDREF does not get updated along with ALTREF_FRAME.
frame_params->refresh_bwd_ref_frame = 0;
- frame_params->refresh_alt2_ref_frame = 0;
frame_params->refresh_alt_ref_frame = 1;
break;
@@ -95,7 +90,6 @@
frame_params->refresh_last_frame = 1;
frame_params->refresh_golden_frame = 0;
frame_params->refresh_bwd_ref_frame = 0;
- frame_params->refresh_alt2_ref_frame = 0;
frame_params->refresh_alt_ref_frame = 0;
cpi->rc.is_src_frame_alt_ref = 1;
@@ -104,13 +98,7 @@
case INTNL_ARF_UPDATE:
frame_params->refresh_last_frame = 0;
frame_params->refresh_golden_frame = 0;
- if (cpi->oxcf.pass != 1) {
- frame_params->refresh_bwd_ref_frame = 1;
- frame_params->refresh_alt2_ref_frame = 0;
- } else {
- frame_params->refresh_bwd_ref_frame = 0;
- frame_params->refresh_alt2_ref_frame = 1;
- }
+ frame_params->refresh_bwd_ref_frame = 1;
frame_params->refresh_alt_ref_frame = 0;
break;
@@ -123,14 +111,12 @@
frame_params->refresh_golden_frame = cpi->ext_refresh_golden_frame;
frame_params->refresh_alt_ref_frame = cpi->ext_refresh_alt_ref_frame;
frame_params->refresh_bwd_ref_frame = cpi->ext_refresh_bwd_ref_frame;
- frame_params->refresh_alt2_ref_frame = cpi->ext_refresh_alt2_ref_frame;
}
if (force_refresh_all) {
frame_params->refresh_last_frame = 1;
frame_params->refresh_golden_frame = 1;
frame_params->refresh_bwd_ref_frame = 1;
- frame_params->refresh_alt2_ref_frame = 1;
frame_params->refresh_alt_ref_frame = 1;
}
}
@@ -164,9 +150,8 @@
cpi->ext_refresh_bwd_ref_frame || cpi->ext_refresh_golden_frame ||
cpi->ext_refresh_last_frame);
else
- return !(cpi->refresh_alt_ref_frame || cpi->refresh_alt2_ref_frame ||
- cpi->refresh_bwd_ref_frame || cpi->refresh_golden_frame ||
- cpi->refresh_last_frame);
+ return !(cpi->refresh_alt_ref_frame || cpi->refresh_bwd_ref_frame ||
+ cpi->refresh_golden_frame || cpi->refresh_last_frame);
}
static INLINE void update_frames_till_gf_update(AV1_COMP *cpi) {
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 52c651c..dfe5d77 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -746,7 +746,7 @@
if ((rd_cost->rate != INT_MAX) && (aq_mode == COMPLEXITY_AQ) &&
(bsize >= BLOCK_16X16) &&
(cm->current_frame.frame_type == KEY_FRAME ||
- cpi->refresh_alt_ref_frame || cpi->refresh_alt2_ref_frame ||
+ cpi->refresh_alt_ref_frame || cpi->refresh_bwd_ref_frame ||
(cpi->refresh_golden_frame && !cpi->rc.is_src_frame_alt_ref))) {
av1_caq_select_segment(cpi, x, bsize, mi_row, mi_col, rd_cost->rate);
}
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index a3450e6..38011d6 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -2510,7 +2510,6 @@
cpi->refresh_last_frame = 1;
cpi->refresh_golden_frame = 0;
cpi->refresh_bwd_ref_frame = 0;
- cpi->refresh_alt2_ref_frame = 0;
cm->refresh_frame_context = (oxcf->frame_parallel_decoding_mode)
? REFRESH_FRAME_CONTEXT_DISABLED
@@ -5774,7 +5773,6 @@
cpi->refresh_last_frame = frame_params->refresh_last_frame;
cpi->refresh_golden_frame = frame_params->refresh_golden_frame;
cpi->refresh_bwd_ref_frame = frame_params->refresh_bwd_ref_frame;
- cpi->refresh_alt2_ref_frame = frame_params->refresh_alt2_ref_frame;
cpi->refresh_alt_ref_frame = frame_params->refresh_alt_ref_frame;
if (current_frame->frame_type == KEY_FRAME && cm->show_frame)
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 2f9264d..3f27b8a 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -820,7 +820,6 @@
int refresh_last_frame;
int refresh_golden_frame;
int refresh_bwd_ref_frame;
- int refresh_alt2_ref_frame;
int refresh_alt_ref_frame;
// For each type of reference frame, this contains the index of a reference
@@ -1116,7 +1115,6 @@
int refresh_last_frame;
int refresh_golden_frame;
int refresh_bwd_ref_frame;
- int refresh_alt2_ref_frame;
int refresh_alt_ref_frame;
// Speed level to use for this frame: Bigger number means faster.
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 0f374cc..b2505ee 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -625,7 +625,7 @@
curr_frame == 0 ? rc->worst_quality : rc->last_q[KEY_FRAME] * 2;
} else {
if (!rc->is_src_frame_alt_ref &&
- (cpi->refresh_golden_frame || cpi->refresh_alt2_ref_frame ||
+ (cpi->refresh_golden_frame || cpi->refresh_bwd_ref_frame ||
cpi->refresh_alt_ref_frame)) {
active_worst_quality = curr_frame == 1 ? rc->last_q[KEY_FRAME] * 5 / 4
: rc->last_q[INTER_FRAME];
@@ -1443,10 +1443,9 @@
const CurrentFrame *const current_frame = &cm->current_frame;
RATE_CONTROL *const rc = &cpi->rc;
const GF_GROUP *const gf_group = &cpi->gf_group;
+
const int is_intrnl_arf =
- cpi->oxcf.pass == 2
- ? gf_group->update_type[gf_group->index] == INTNL_ARF_UPDATE
- : cpi->refresh_alt2_ref_frame;
+ gf_group->update_type[gf_group->index] == INTNL_ARF_UPDATE;
const int qindex = cm->base_qindex;
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index ea39484..e31c845 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -13356,9 +13356,8 @@
mbmi->partition != PARTITION_NONE && mbmi->partition != PARTITION_SPLIT) {
// Don't enable for vert and horz partition blocks if current frame
// will be used as bwd or arf2.
- if ((!cpi->refresh_bwd_ref_frame && !cpi->refresh_alt2_ref_frame) ||
- (mbmi->partition != PARTITION_VERT &&
- mbmi->partition != PARTITION_HORZ)) {
+ if (!cpi->refresh_bwd_ref_frame || (mbmi->partition != PARTITION_VERT &&
+ mbmi->partition != PARTITION_HORZ)) {
picked_ref_frames_mask = fetch_picked_ref_frames_mask(
x, bsize, cm->seq_params.mib_size, mi_row, mi_col);
}
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index c0eee79..c3505e2 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -231,8 +231,7 @@
const AV1_COMP *const cpi, SPEED_FEATURES *const sf, int speed) {
const AV1_COMMON *const cm = &cpi->common;
const int boosted = frame_is_boosted(cpi);
- const int is_boosted_arf2_bwd_type =
- boosted || cpi->refresh_bwd_ref_frame || cpi->refresh_alt2_ref_frame;
+ const int is_boosted_arf2_bwd_type = boosted || cpi->refresh_bwd_ref_frame;
// Speed 0 for all speed features that give neutral coding performance change.
sf->reduce_inter_modes = 1;
diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c
index c644c88..2fe8800 100644
--- a/av1/encoder/tpl_model.c
+++ b/av1/encoder/tpl_model.c
@@ -751,7 +751,6 @@
cpi->refresh_last_frame = this_frame_params.refresh_last_frame;
cpi->refresh_golden_frame = this_frame_params.refresh_golden_frame;
cpi->refresh_bwd_ref_frame = this_frame_params.refresh_bwd_ref_frame;
- cpi->refresh_alt2_ref_frame = this_frame_params.refresh_alt2_ref_frame;
cpi->refresh_alt_ref_frame = this_frame_params.refresh_alt_ref_frame;
gf_group->q_val[gf_index] = av1_rc_pick_q_and_bounds(