• Christophe Gisquet's avatar
    rv40dsp x86: MMX/MMX2/3DNow/SSE2/SSSE3 implementations of MC · 110d0cdc
    Christophe Gisquet authored
    Code mostly inspired by vp8's MC, however:
    - its MMX2 horizontal filter is worse because it can't take advantage of
      the coefficient redundancy
    - that same coefficient redundancy allows better code for non-SSSE3 versions
    
    Benchmark (rounded to tens of unit):
            V8x8  H8x8  2D8x8  V16x16  H16x16  2D16x16
    C       445    358   985    1785    1559    3280
    MMX*    219    271   478     714     929    1443
    SSE2    131    158   294     425     515     892
    SSSE3   120    122   248     387     390     763
    
    End result is overall around a 15% speedup for SSSE3 version (on 6 sequences);
    all loop filter functions now take around 55% of decoding time, while luma MC
    dsp functions are around 6%, chroma ones are 1.3% and biweight around 2.3%.
    Signed-off-by: 's avatarDiego Biurrun <diego@biurrun.de>
    110d0cdc
Name
Last commit
Last update
doc Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
Doxyfile Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
avconv.c Loading commit data...
avplay.c Loading commit data...
avprobe.c Loading commit data...
avserver.c Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...