1. 30 Sep, 2015 1 commit
  2. 29 Sep, 2015 1 commit
  3. 25 Sep, 2015 1 commit
    • Claudio Freire's avatar
      AAC encoder: tweak PNS usage to be more aggressive · 9458a62d
      Claudio Freire authored
      This patch tweaks search_for_pns to be both more
      aggressive and more careful when applying PNS. On
      the one side, it will again try to use PNS on zero
      (or effectively zero) bands. For this, both zeroes
      and band_type have to be checked (some ZERO bands
      aren't marked in zeroes). On the other side, a more
      accurate rate-distortion measure avoids using PNS
      where it would cause audible distortion.
      
      Also fixed a small bug in the computation of freq
      that caused PNS usage on low-frequency bands during
      8-short windows. This allows re-enabling PNS during
      8-short.
      9458a62d
  4. 23 Sep, 2015 2 commits
    • Christophe Gisquet's avatar
      fate: add chroma position scale test · f94af8d3
      Christophe Gisquet authored
      The sample position is made weird and non-nominal to force catching
      such issues as default values or specialized operations hiding
      issues in corner cases.
      Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
      f94af8d3
    • Claudio Freire's avatar
      AAC encoder: tweak rate-distortion logic · 7ec74ae4
      Claudio Freire authored
      This patch modifies the encode frame function to
      retry encoding the frame when the resulting bit count
      is too far off target, but only adjusting lambda
      in small, incremental step. It also makes the logic
      more conservative - otherwise it will contend with
      bit reservoir-related variations in bit allocation,
      and result in artifacts when frame have to be truncated
      (usually at high bit rates transitioning from low
      complexity to high complexity).
      7ec74ae4
  5. 19 Sep, 2015 1 commit
  6. 17 Sep, 2015 1 commit
    • Claudio Freire's avatar
      AAC encoder: refactor to resynchronize MIPS port · 8df9bf8e
      Claudio Freire authored
      This patch refactors the AAC coders to reuse code
      between the MIPS port and the regular, portable C code.
      There were two main functions that had to use
      hand-optimized versions of quantization code:
       - search_for_quantizers_twoloop
       - codebook_trellis_rate
      
      Those two were split into their own template header
      files so they can be inlined inside both the MIPS port
      and the generic code. In each context, they'll link
      to their specialized implementations, and thus be
      optimized by the compiler.
      
      This approach I believe is better than maintaining
      several copies of each function. As past experience has
      proven, having to keep those in sync was error prone.
      In this way, they will remain in sync by default.
      
      Also, an implementation of the dequantized output
      argument for the optimized quantize_and_encode
      functions is included in the patch. While the current
      implementation of search_for_pred still isn't using
      it, future iterations of main prediction probably will.
      It should not imply any measurable performance hit while
      not being used.
      8df9bf8e
  7. 16 Sep, 2015 1 commit
  8. 13 Sep, 2015 2 commits
  9. 12 Sep, 2015 1 commit
  10. 09 Sep, 2015 1 commit
    • Rostislav Pehlivanov's avatar
      aaccoder: tweak PNS implementation further · da64bd6a
      Rostislav Pehlivanov authored
      This commit changes a few things about the noise substitution
      logic:
       - Brings back the quantization factor (reduced to 3) during
         scalefactor index calculations.
       - Rejects any zeroed bands. They should be inaudiable and it's
         a waste transmitting the scalefactor indices for these.
       - Uses swb_offsets instead of incrementing a 'start' with every
         window group size.
       - Rejects all PNS during short windows.
      Overall improves quality. There was a plan to use the lfg system
      to create the random numbers instead of using whatever the decoder
      uses but for now this works fine. Entropy is far from important here.
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      da64bd6a
  11. 07 Sep, 2015 1 commit
    • Rostislav Pehlivanov's avatar
      aaccoder: add frequency scaling and quantization correction for PNS · b6cc8ec7
      Rostislav Pehlivanov authored
      This commit once again improves the PNS implementation by scaling the
      thresholds with frequency. The thresholds get looser as the frequency
      increases since higher frequencies are basically noise to human ears.
      
      Also, this introduces quantization error correction for PNS. Should
      the error be too much, no PNS will be used. The energy_ratio is used
      to regulate the actual encoded PNS energy: if the generated PNS
      energy is higher than the energy from the psy system, energy_ratio
      is used to correct it so that hopefully once requantized and
      transmitted the value in the decoder will be closer to what the
      encoder has.
      Signed-off-by: 's avatarRostislav Pehlivanov <atomnuker@gmail.com>
      b6cc8ec7
  12. 06 Sep, 2015 4 commits
  13. 05 Sep, 2015 2 commits
  14. 03 Sep, 2015 1 commit
  15. 02 Sep, 2015 4 commits
  16. 01 Sep, 2015 3 commits
  17. 31 Aug, 2015 2 commits
  18. 30 Aug, 2015 1 commit
  19. 29 Aug, 2015 4 commits
  20. 25 Aug, 2015 1 commit
  21. 24 Aug, 2015 2 commits
  22. 23 Aug, 2015 1 commit
  23. 22 Aug, 2015 2 commits