1. 07 Jan, 2016 2 commits
  2. 19 Dec, 2015 1 commit
  3. 22 Oct, 2015 1 commit
  4. 19 Oct, 2015 1 commit
  5. 14 Oct, 2015 1 commit
  6. 11 Oct, 2015 3 commits
    • Ronald S. Bultje's avatar
      intmath: remove av_ctz. · 93866c2a
      Ronald S. Bultje authored
      It's a non-installed header and only used in one place (flacenc).
      Since ff_ctz is static inline, it's fine to use that instead.
      93866c2a
    • Michael Niedermayer's avatar
      avutil/intmath: Change debruijn_ctz64 to use 8bit elements · 2a4d1a66
      Michael Niedermayer authored
      This reduces the memory & cache need from 256 to 64 bytes
      the code also seems faster with this change
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      2a4d1a66
    • Ganesh Ajjanagadde's avatar
      avutil/mathematics: speed up av_gcd by using Stein's binary GCD algorithm · 971d12b7
      Ganesh Ajjanagadde authored
      This uses Stein's binary GCD algorithm:
      https://en.wikipedia.org/wiki/Binary_GCD_algorithm
      to get a roughly 4x speedup over Euclidean GCD on standard architectures
      with a compiler intrinsic for ctzll, and a roughly 2x speedup otherwise.
      At the moment, the compiler intrinsic is used on GCC and Clang due to
      its easy availability.
      
      Quick note regarding overflow: yes, subtractions on int64_t can, but the
      llabs takes care of that. The llabs is also guaranteed to be safe, with
      no annoying INT64_MIN business since INT64_MIN being a power of 2, is
      shifted down before being sent to llabs.
      
      The binary GCD needs ff_ctzll, an extension of ff_ctz for long long (int64_t). On
      GCC, this is provided by a built-in. On Microsoft, there is a
      BitScanForward64 analog of BitScanForward that should work; but I can't confirm.
      Apparently it is not available on 32 bit builds; so this may or may not
      work correctly. On Intel, per the documentation there is only an
      intrinsic for _bit_scan_forward and people have posted on forums
      regarding _bit_scan_forward64, but often their documentation is
      woeful. Again, I don't have it, so I can't test.
      
      As such, to be safe, for now only the GCC/Clang intrinsic is added, the rest
      use a compiled version based on the De-Bruijn method of Leiserson et al:
      http://supertech.csail.mit.edu/papers/debruijn.pdf.
      
      Tested with FATE, sample benchmark (x86-64, GCC 5.2.0, Haswell)
      with a START_TIMER and STOP_TIMER in libavutil/rationsl.c, followed by a
      make fate.
      
      aac-am00_88.err:
      builtin:
      714 decicycles in av_gcd,    4095 runs,      1 skips
      
      de-bruijn:
      1440 decicycles in av_gcd,    4096 runs,      0 skips
      
      previous:
      2889 decicycles in av_gcd,    4096 runs,      0 skips
      Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      971d12b7
  7. 22 Aug, 2015 1 commit
  8. 18 Jul, 2015 1 commit
  9. 25 Feb, 2015 1 commit
  10. 16 Feb, 2015 1 commit
  11. 26 Oct, 2014 1 commit
  12. 31 Aug, 2014 1 commit
  13. 05 Nov, 2012 1 commit
  14. 20 Oct, 2012 2 commits
  15. 11 Oct, 2012 1 commit
  16. 22 Aug, 2012 1 commit
    • Mans Rullgard's avatar
      x86: remove FASTDIV inline asm · 5b170c0b
      Mans Rullgard authored
      GCC 4.3 and later do the right thing with the plain C code.  Earlier
      versions in 32-bit mode generate one extra instruction, needlessly
      zeroing what would be the high half of the shifted value.  At least
      two gcc configurations miscompile the inline asm in some situations.
      
      In 64-bit mode, all gcc versions generate imul r64, r64 followed by
      shr.  On Intel i7 and later, this imul is faster 32-bit mul.  On
      older Intel and all AMD, it is slightly slower.  On Atom it is much
      slower.
      
      Considering where the FASTDIV macro is used, any overall negative
      performance impact of this change should be negligible.  If anyone
      cares, they should file a bug against gcc and get the instruction
      selection fixed.
      Signed-off-by: 's avatarMans Rullgard <mans@mansr.com>
      5b170c0b
  17. 21 Aug, 2012 1 commit
    • Diego Biurrun's avatar
      configure: Drop fastdiv option · 66baa458
      Diego Biurrun authored
      There is no point in having the user disable any fastdiv macros.
      Besides the condition implementation was broken and only disabled
      the C implementation, but no platform specific assembly versions.
      66baa458
  18. 22 Nov, 2011 1 commit
  19. 19 Mar, 2011 1 commit
  20. 07 Jul, 2010 2 commits
  21. 09 Mar, 2010 1 commit
  22. 08 Mar, 2010 1 commit
  23. 19 Jan, 2010 1 commit
  24. 14 Jan, 2010 1 commit
  25. 31 Aug, 2008 1 commit
  26. 19 Mar, 2008 2 commits
  27. 18 Mar, 2008 2 commits
  28. 17 Oct, 2007 1 commit
  29. 16 Jun, 2007 1 commit
  30. 07 Oct, 2006 1 commit
  31. 10 Sep, 2006 1 commit
  32. 13 Jul, 2006 1 commit