Commit de45b6e71c for aom
commit de45b6e71c1c3ffda2a86ca628d0ad7cd05b09ff
Author: Bohan Li <bohanli@google.com>
Date: Mon Jun 22 12:41:58 2026 -0700
Fix TPL reference matching for previous GOP ARF
Targeted to ext rc fix. Has minor influence on regular encoding results.
Results here: http://shortn/_NxmSfjjgMF
STATS_CHANGED
Change-Id: I9e0bb5d537f977c38aa2784f82fc1ef6d3a03ff8
diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c
index a9efb79872..d4881c9833 100644
--- a/av1/encoder/tpl_model.c
+++ b/av1/encoder/tpl_model.c
@@ -1669,6 +1669,7 @@ static inline int init_gop_frames_for_tpl(
TplParams *const tpl_data = &cpi->ppi->tpl_data;
int ref_picture_map[REF_FRAMES];
+ int has_prev_arf = 0;
for (int i = 0; i < REF_FRAMES; ++i) {
if (frame_params.frame_type == KEY_FRAME) {
@@ -1676,7 +1677,6 @@ static inline int init_gop_frames_for_tpl(
tpl_data->tpl_frame[-i - 1].rec_picture = NULL;
tpl_data->tpl_frame[-i - 1].frame_display_index = 0;
} else {
- int has_prev_arf = 0;
if (cm->ref_frame_map[i]->display_order_hint ==
tpl_data->prev_gop_arf_disp_order) {
tpl_data->tpl_frame[-i - 1].gf_picture = &tpl_data->prev_gop_arf_src;
@@ -1689,15 +1689,15 @@ static inline int init_gop_frames_for_tpl(
}
tpl_data->tpl_frame[-i - 1].frame_display_index =
cm->ref_frame_map[i]->display_order_hint;
-
- if (!has_prev_arf) {
- tpl_data->prev_gop_arf_disp_order = -1;
- }
}
ref_picture_map[i] = -i - 1;
}
+ if (frame_params.frame_type != KEY_FRAME && !has_prev_arf) {
+ tpl_data->prev_gop_arf_disp_order = -1;
+ }
+
*tpl_group_frames = 0;
int gf_index;