OSUOSL/Nero are experiencing Internet connectivity problems. This affects us as we're hosted with OSUOSL. We apologize for the inconvenience.

Commit 4c7e1cd9 authored by Wei-ting Lin's avatar Wei-ting Lin

Separate EXT_ARFs' frame context index

This commit separate the frame index of EXT_ARFs' from other frame
types in the ext-refs setting.

It improves the average RD performance by

0.206% in the lowres, and
0.173% in the midres.

The overall gains for the ext-refs compared to the baseline are

5.665% in the lowres, and
4.883% in the midres.

Change-Id: I6591ad29120880c1aef0bd0b7cf15238c3f3b8f3
parent 167a4efb
......@@ -283,8 +283,16 @@ static void setup_frame(VP10_COMP *cpi) {
if (frame_is_intra_only(cm) || cm->error_resilient_mode) {
vp10_setup_past_independence(cm);
} else {
#if CONFIG_EXT_REFS
const GF_GROUP *gf_group = &cpi->twopass.gf_group;
if (gf_group->rf_level[gf_group->index] == GF_ARF_LOW)
cm->frame_context_idx = EXT_ARF_FRAME;
else if (cpi->refresh_alt_ref_frame)
cm->frame_context_idx = ARF_FRAME;
#else
if (cpi->refresh_alt_ref_frame)
cm->frame_context_idx = ARF_FRAME;
#endif
else if (cpi->rc.is_src_frame_alt_ref)
cm->frame_context_idx = OVERLAY_FRAME;
else if (cpi->refresh_golden_frame)
......
......@@ -81,6 +81,8 @@ typedef enum {
#if CONFIG_EXT_REFS
// backward reference frame
BRF_FRAME = 4,
// extra alternate reference frame
EXT_ARF_FRAME = 5
#endif
} FRAME_CONTEXT_INDEX;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment