Fix a bug in calculating the compound ref frame cost
The previous ext-refs experiment did not consider the cost of the 2nd reference frame on mode decision in the compound mode. With the fix, using Overall PSNR, compared to the previous ext-refs RD performance before the bug fix, all against the baseline, the improvements are: "ext-refs" before fix: lowres -5.665% midres: -4.833% "ext-refs" after fix: lowres -5.776% midres: -5.000% Improvement by the fix: lowres -0.111% midres: -0.167% Change-Id: I2eceedf2d4046b169514e049fd01baaf0bbb50c6
This commit is contained in:
@@ -9029,6 +9029,9 @@ void vp10_rd_pick_inter_mode_sb(VP10_COMP *cpi, TileDataEnc *tile_data,
|
||||
// to the rolling cost variable.
|
||||
if (comp_pred) {
|
||||
rate2 += ref_costs_comp[ref_frame];
|
||||
#if CONFIG_EXT_REFS
|
||||
rate2 += ref_costs_comp[second_ref_frame];
|
||||
#endif // CONFIG_EXT_REFS
|
||||
} else {
|
||||
rate2 += ref_costs_single[ref_frame];
|
||||
}
|
||||
@@ -10382,6 +10385,9 @@ void vp10_rd_pick_inter_mode_sub8x8(struct VP10_COMP *cpi,
|
||||
// to the rolling cost variable.
|
||||
if (second_ref_frame > INTRA_FRAME) {
|
||||
rate2 += ref_costs_comp[ref_frame];
|
||||
#if CONFIG_EXT_REFS
|
||||
rate2 += ref_costs_comp[second_ref_frame];
|
||||
#endif // CONFIG_EXT_REFS
|
||||
} else {
|
||||
rate2 += ref_costs_single[ref_frame];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user