• Geza Lore's avatar
    Fix obmc + ext-interp interference · 009bd115
    Geza Lore authored
    With ext-interp, a switchable interpolation filter is coded iff the
    motion vector uses fractional pixel movement (ie, true subpixel
    movement). With ext-interp and obmc enabled at the same time, the RD
    search proceeds as:
    1. Do motion search
    2. Do interpolation filter search iff subpixel motion, otherwise use
       EIGHTTAP_REGULAR
    3. Evaluate obmc=0
    4. Evaluete obmc=1 - This involves another motion search
    
    If the motion search in step 4 yields an integer motion vector, while
    the search in step 1 did not, then an interp_filter value other than
    EIGHTTAP_REGULAR is invalid, and will cause an assertion failure
    at output time, or a mismatch if not using --enable-debug.
    
    The fix sets the interp_filter to EIGHTTAP_REGULAR if obmc=1 is picked
    with an integer motion vector.
    
    Change-Id: I4685d1ad537f41d833dc9eb64845956b67886cca
    009bd115
rdopt.c 393 KB