Commit c3571bc8 authored by Zoe Liu's avatar Zoe Liu Committed by Yaowu Xu
Browse files

Adjust encoder rate allocations for ext-refs

This CL is targeted to improve the objective/subjective quality of the
"ext-refs" coding tool.

Tuned the frame rate factors as follows:

(1) BRF_UPDATE:
    Decreased from INTER_HIGH (1.5) to GF_ARF_LOW (1.25);
(2) Both LAST_BIPRED_UPDATE and BIPRED_UPDATE:
    Increased from INTER_LOW (0.80) to INTER_NORMAL (1.00)
, which is to reduce the bits allocated to the BWEDREF frame whereas
to increase the bits allocated to the bi-directionally predicted
frames.

Obtained a coding gain in overall PSNR as follows, compared against
the original ext-refs:

lowres: BDRate -0.181%
midres: BDRate -0.090%
hdres:  BDRate -0.701%

Change-Id: Id001f3b124d833da9f80eba4cdec2ca3f6ba9d82
parent 4c10a3c2
......@@ -1905,12 +1905,12 @@ static void allocate_gf_group_bits(AV1_COMP *cpi, int64_t gf_group_bits,
#if CONFIG_EXT_REFS
if (gf_group->update_type[frame_index] == BRF_UPDATE) {
// Boost up the allocated bits on BWDREF_FRAME
gf_group->rf_level[frame_index] = INTER_HIGH;
gf_group->rf_level[frame_index] = GF_ARF_LOW;
gf_group->bit_allocation[frame_index] =
target_frame_size + (target_frame_size >> 2);
} else if (gf_group->update_type[frame_index] == LAST_BIPRED_UPDATE) {
// Press down the allocated bits on LAST_BIPRED_UPDATE frames
gf_group->rf_level[frame_index] = INTER_LOW;
gf_group->rf_level[frame_index] = INTER_NORMAL;
gf_group->bit_allocation[frame_index] =
target_frame_size - (target_frame_size >> 1);
} else if (gf_group->update_type[frame_index] == BIPRED_UPDATE) {
......@@ -1972,7 +1972,7 @@ static void allocate_gf_group_bits(AV1_COMP *cpi, int64_t gf_group_bits,
gf_group->bit_allocation[arf_pos[i]];
gf_group->update_type[arf_pos[i]] = INTNL_OVERLAY_UPDATE;
gf_group->bit_allocation[arf_pos[i]] = 0;
gf_group->rf_level[arf_pos[i]] = INTER_LOW;
gf_group->rf_level[arf_pos[i]] = INTER_NORMAL;
}
}
#else
......
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