summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.c
diff options
context:
space:
mode:
authorCheng Chen <chengchen@google.com>2022-08-26 14:29:32 -0700
committerCheng Chen <chengchen@google.com>2022-08-26 14:32:17 -0700
commitfd45d113807eb00fd5b9e58784e48e662a6797b9 (patch)
tree4a715e5fbcfc7906372f7206fec542d0851a518b /vp9/encoder/vp9_encoder.c
parent4bfab03e812f32167259f1e84356f862eb71fd44 (diff)
downloadlibvpx-fd45d113807eb00fd5b9e58784e48e662a6797b9.tar
libvpx-fd45d113807eb00fd5b9e58784e48e662a6797b9.tar.gz
libvpx-fd45d113807eb00fd5b9e58784e48e662a6797b9.tar.bz2
libvpx-fd45d113807eb00fd5b9e58784e48e662a6797b9.zip
L2E: Add gop size and ARF existence to frame info
Pass the encode frame info to external ml model, with the information of gop size and whether alt ref is used. Change-Id: I55be2d3de83d7182c1a1a174e44ead7e19045c9d
Diffstat (limited to 'vp9/encoder/vp9_encoder.c')
-rw-r--r--vp9/encoder/vp9_encoder.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 371779e77..91b64e5d1 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -4501,11 +4501,17 @@ static void encode_with_recode_loop(VP9_COMP *cpi, size_t *size, uint8_t *dest
RefCntBuffer *ref_frame_bufs[MAX_INTER_REF_FRAMES];
const RefCntBuffer *curr_frame_buf =
get_ref_cnt_buffer(cm, cm->new_fb_idx);
+ // index 0 of a gf group is always KEY/OVERLAY/GOLDEN.
+ // index 1 refers to the first encoding frame in a gf group.
+ // Therefore if it is ARF_UPDATE, it means this gf group uses alt ref.
+ // See function define_gf_group_structure().
+ const int use_alt_ref = gf_group->update_type[1] == ARF_UPDATE;
get_ref_frame_bufs(cpi, ref_frame_bufs);
codec_status = vp9_extrc_get_encodeframe_decision(
&cpi->ext_ratectrl, curr_frame_buf->frame_index,
cm->current_frame_coding_index, gf_group->index, update_type,
- ref_frame_bufs, ref_frame_flags, &encode_frame_decision);
+ gf_group->gf_group_size, use_alt_ref, ref_frame_bufs, ref_frame_flags,
+ &encode_frame_decision);
if (codec_status != VPX_CODEC_OK) {
vpx_internal_error(&cm->error, codec_status,
"vp9_extrc_get_encodeframe_decision() failed");