• Zoe Liu's avatar
    Merge bi-predictive frames to EXT_REFS · 5805a14c
    Zoe Liu authored
    This patch removed the experiment of BIDIR_PRED and merged the feature
    into the experiment of EXT_REFS:
    
    (1) Each frame now has up to 6 reference frames, namely
        LAST_FRAME, LAST2_FRAME, LAST3_FRAME, GOLDEN_FRAME, (forward) and
        BWDREF_FRAME, ALTREF_FRAME (backward);
        LAST4_FRAME has been removed;
    (2) First pass still keeps the 8 updates:
        KF_UPDATE, LF_UPDATE, GF_UPDATE, ARF_UPDATE, OVERLAY_UPDATE, and
        BRF_UPDATE, LAST_BIPRED_UPDATE, BI_PRED_UPDATE;
    (3) show_existing_frame==1 is supported in the experiment of EXT_REFS;
    (4) New encoding modes are added for both single-ref and compound cases,
        through the use of the 2 extra forward references (LAST2 & LAST3)
        and the 1 extra backward reference (BWDREF).
    
    RD performance wise, using Overall PSNR: Avg/BDRate
            Bipred only      Prev EXT_REFS    Current EXT_REFS with bipred
    lowres: -3.474/-3.324    -1.748/-1.586    -4.613/-4.387
    derflr: -2.097/-1.353    -1.439/-1.215    -3.120/-2.252
    midres: -2.129/-1.901    -1.345/-1.185    -2.898/-2.636
    
    If in vp10/encoder/firstpass.h, change BFG_INTERVAL from 2 to 3, i.e. to
    use 2 bi-predictive frames than 1, a further improvement may be
    obtained:
                     Current EXT_REFS with bipred
            1 bi-predictive frame    2 bi-predictive frames
    lowres: -4.613/-4.387            -4.675/-4.465
    derflr: -3.120/-2.252            -3.333/-2.516
    midres: -2.898/-2.636            -3.406/-3.095
    
    Change-Id: Ib06fe9ea0a5cfd7418a1d79b978ee9d80bf191cb
    5805a14c
decoder.h 5.52 KB