diff options
author | Cheng Chen <chengchen@google.com> | 2022-08-26 14:29:32 -0700 |
---|---|---|
committer | Cheng Chen <chengchen@google.com> | 2022-08-26 14:32:17 -0700 |
commit | fd45d113807eb00fd5b9e58784e48e662a6797b9 (patch) | |
tree | 4a715e5fbcfc7906372f7206fec542d0851a518b /vp9/encoder/vp9_encoder.c | |
parent | 4bfab03e812f32167259f1e84356f862eb71fd44 (diff) | |
download | libvpx-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.c | 8 |
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"); |