• Deb Mukherjee's avatar
    Supporting high precision 1/8-pel motion vectors · 18e90d74
    Deb Mukherjee authored
    This is the initial patch for supporting 1/8th pel
    motion. Currently if we configure with enable-high-precision-mv,
    all motion vectors would default to 1/8 pel. Encode and
    decode syncs fine with the current code. In the next phase
    the code will be refactored so that we can choose the 1/8
    pel mode adaptively at a frame/segment/mb level.
    
    Derf results:
    http://www.corp.google.com/~debargha/vp8_results/enhinterp_hpmv.html
    (about 0.83% better than 8-tap interpoaltion)
    
    Patch 3: Rebased. Also adding 1/16th pel interpolation for U and V
    
    Patch 4: HD results.
    http://www.corp.google.com/~debargha/vp8_results/enhinterp_hd_hpmv.html
    Seems impressive (unless I am doing something wrong).
    
    Patch 5: Added mmx/sse for bilateral filtering, as well as enforced
    use of c-versions of subpel filters with 8-taps and 1/16th pel;
    Also redesigned the 8-tap filters to reduce the cut-off in order to
    introduce a denoising effect. There is a new configure option
    sixteenth-subpel-uv which will use 1/16 th pel interpolation for
    uv, if the motion vectors have 1/8 pel accuracy.
    
    With the fixes the results are promising on the derf set. The enhanced
    interpolation option with 8-taps alone gives 3% improvement over thei
    derf set:
    http://www.corp.google.com/~debargha/vp8_results/enhinterpn.html
    
    Results on high precision mv and on the hd set are to follow.
    
    Patch 6: Adding a missing condition for CONFIG_SIXTEENTH_SUBPEL_UV in
    vp8/common/x86/x86_systemdependent.c
    
    Patch 7: Cleaning up various debug messages.
    
    Patch 8: Merge conflict
    
    Change-Id: I5b1d844457aefd7414a9e4e0e06c6ed38fd8cc04
    18e90d74
filter.c 127 KB