]> granicus.if.org Git - libvpx/commitdiff
Fix a bug for multi_arf_allowed
authorWei-ting Lin <weitinglin@google.com>
Fri, 5 Aug 2016 20:32:47 +0000 (13:32 -0700)
committerWei-ting Lin <weitinglin@google.com>
Fri, 5 Aug 2016 21:05:50 +0000 (14:05 -0700)
The ARF Index was wrong when updating the upsampled reference
frame buffer.

Compared to the baseline in which multi_arf_allowed is disabled, the
RD performance drops 2.250% in Avg using Overall PSNR in the derf
dataset. The performance decrease is especially in the following
video sequences:

foreman_cif: drops 7.489%
husky_cif: drops 6.421%
soccer_cif: drops 4.850%

However, it has a significant gain in the following video sequences:

container_cif: increases 8.043%
harbour_cif: increases 1.332%

Change-Id: I02472909eb34bd070d7544f57383e72559fa42b3

vp10/encoder/encoder.c

index 412b53a17d8f229676ea933bddf12c7dc051e93d..e2f065ed361dc0dd4b0f3ff577027864d8bed6ed 100644 (file)
@@ -3504,7 +3504,7 @@ void vp10_update_reference_frames(VP10_COMP *cpi) {
                  &cm->ref_frame_map[arf_idx], cm->new_fb_idx);
       if (use_upsampled_ref)
         uref_cnt_fb(cpi->upsampled_ref_bufs,
-                    &cpi->upsampled_ref_idx[cpi->alt_fb_idx], new_uidx);
+                    &cpi->upsampled_ref_idx[arf_idx], new_uidx);
 
       memcpy(cpi->interp_filter_selected[ALTREF_FRAME],
              cpi->interp_filter_selected[0],