1. 26 Nov, 2015 9 commits
    • Ganesh Ajjanagadde's avatar
      avfilter/af_dynaudnorm: remove wasteful pow · 352bd18d
      Ganesh Ajjanagadde authored
      This removes wasteful pow(x, 2.0) that although not terribly important
      for speed, is still useless.
      Reviewed-by: 's avatarPaul B Mahol <onemda@gmail.com>
      Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
      352bd18d
    • Ganesh Ajjanagadde's avatar
      avfilter/af_afade: improve accuracy and speed of gain computation · 9ee1feaa
      Ganesh Ajjanagadde authored
      Gain computation for various curves was being done in a needlessly
      inaccurate fashion. Of course these are all subjective curves, but when
      a curve is advertised to the user, it should be matched as closely as
      possible within the limitations of libm. In particular, the constants
      kept here were pretty inaccurate for double precision.
      
      Speed improvements are mainly due to the avoidance of pow, the most
      notorious of the libm functions in terms of performance. To be fair, it
      is the GNU libm that is among the worst, but it is not really GNU libm's fault
      since others simply yield a higher error as measured in ULP.
      
      "Magic" constants are also accordingly documented, since they take at
      least a minute of thought for a casual reader.
      Reviewed-by: 's avatarPaul B Mahol <onemda@gmail.com>
      Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
      9ee1feaa
    • Ganesh Ajjanagadde's avatar
      avutil/lls: speed up performance of solve_lls · 68e79b27
      Ganesh Ajjanagadde authored
      This is a trivial rewrite of the loops that results in better
      prefetching and associated cache efficiency. Essentially, the problem is
      that modern prefetching logic is based on finite state Markov memory, a reasonable
      assumption that is used elsewhere in CPU's in for instance branch
      predictors.
      
      Surrounding loops all iterate forward through the array, making the
      predictor think of prefetching in the forward direction, but the
      intermediate loop is unnecessarily in the backward direction.
      
      Speedup is nontrivial. Benchmarks obtained by 10^6 iterations within
      solve_lls, with START/STOP_TIMER. File is tests/data/fate/flac-16-lpc-cholesky.err.
      Hardware: x86-64, Haswell, GNU/Linux.
      
      new:
        17291 decicycles in solve_lls, 2096706 runs,    446 skips
        17255 decicycles in solve_lls, 4193657 runs,    647 skips
        17231 decicycles in solve_lls, 8384997 runs,   3611 skips
        17189 decicycles in solve_lls,16771010 runs,   6206 skips
        17132 decicycles in solve_lls,33544757 runs,   9675 skips
        17092 decicycles in solve_lls,67092404 runs,  16460 skips
        17058 decicycles in solve_lls,134188213 runs,  29515 skips
      
      old:
        18009 decicycles in solve_lls, 2096665 runs,    487 skips
        17805 decicycles in solve_lls, 4193320 runs,    984 skips
        17779 decicycles in solve_lls, 8386855 runs,   1753 skips
        18289 decicycles in solve_lls,16774280 runs,   2936 skips
        18158 decicycles in solve_lls,33548104 runs,   6328 skips
        18420 decicycles in solve_lls,67091793 runs,  17071 skips
        18310 decicycles in solve_lls,134187219 runs,  30509 skips
      Reviewed-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      Signed-off-by: 's avatarGanesh Ajjanagadde <gajjanagadde@gmail.com>
      68e79b27
    • Paul B Mahol's avatar
    • Timothy Gu's avatar
      aaccoder_twoloop: Mark sfdiff as av_unused · 9078a694
      Timothy Gu authored
      Silences warning when building without assertions
      Signed-off-by: 's avatarClaudio Freire <klaussfreire@gmail.com>
      9078a694
    • Claudio Freire's avatar
      AAC encoder: fix wrong gain sacalefactor being set · 3b1cab93
      Claudio Freire authored
      In some conditions, where the first band was being zeroed
      mainly, the wrong global gain scalefactor would be written
      to the stream since it's always taken from the first band
      regardless of whether it's been marked as zero or not.
      
      So, always make sure it contians something useful.
      3b1cab93
    • Claudio Freire's avatar
      AAC encoder: Fix application of M/S with PNS · fc36d852
      Claudio Freire authored
      When both M/S coding and PNS are enabled, scalefactors
      and coding books would be mistakenly clobbered when setting
      the M/S flag on PNS'd bands. The flag needs to be set to
      signal the generation of correlated noise, but the scalefactors,
      coefficients and the coding books need to be kept intact.
      fc36d852
    • Timothy Gu's avatar
      fate-run: Fix indentation · 04deaef2
      Timothy Gu authored
      04deaef2
    • Rodger Combs's avatar
      362c17e6
  2. 25 Nov, 2015 16 commits
  3. 24 Nov, 2015 11 commits
  4. 23 Nov, 2015 4 commits