1. 04 Dec, 2014 1 commit
  2. 21 Nov, 2014 1 commit
    • Johann's avatar
      Correctly initialize "ones" value in neon quantize · 08ad7e4d
      Johann authored
      By using 0xff for a short it was not setting the high bits. When
      comparing the output with vtst to find non-zero elements it was skipping
      vaules which had no low bits set such as -512 / 0xFE00.
      Using -8191 as the first element of coeff will generate this condition.
      Change-Id: Ia1e10fb809d1e7866f28c56769fe703e6231a657
  3. 07 Nov, 2014 1 commit
    • Johann's avatar
      Remove asm offset dependencies · 6eec73a7
      Johann authored
      The obj_int_extract code is no longer worth maintaining. It creates
      significant issues when adapting for different build systems and no
      longer offers as significant of a performance benefit due to
      improvements in intrinsics.
      Source files will remain until the various third-party builds are updated.
      The neon fast quantizer has been moved to intrinsics. The armv6 version
      has been removed because so few remaining targets require it.
      Compilers and processors have improved significantly since the
      pack_tokens code was written. The assembly is no longer faster than the
      C code.
      pack_tokens were the only optimizations for the armv5te targets so the targets
      will be removed after the test infrastructure has been updated.
      Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb
  4. 04 Nov, 2014 1 commit
    • Johann's avatar
      Avoid divide-by-zero in vp8 initialization · b4957234
      Johann authored
      Check that the numerator is not zero. If it is, guess 30fps.
      Fixes a clang IOC error in the quantize test. It's very unlikely for
      this to occur in the wild because the setup in the quantize test is very
      Change-Id: Icdab7b81d4e168d3423e14db20787f960052e0c3
  5. 31 Oct, 2014 2 commits
    • Johann's avatar
      Remove pair quantization · 2134eb2f
      Johann authored
      The intrinsics version of the pair quant is slower than running it
      Change-Id: I7b4ea8599d4aab04be0a5a0c59b8b29a7fc283f4
    • Johann's avatar
      vp8 quantization -> intrinsics · 7ae75c3d
      Johann authored
      Use intrinsics for neon quantization. Slight loss (<5%) of performance
      compared to the assembly. Roughly 10x faster on arm64 because that was
      running C code before.
      Change-Id: I7cf5242d8f29b7eab5bca6a1c20c89c9fc9ca66d
  6. 24 Oct, 2014 1 commit
    • Marco's avatar
      vp8: Updates to noise level estimate. · fe2fd37b
      Marco authored
      -Use full bandwidth (when temporal layers is on) for checking switching.
      -Normalize metric wrt num_blocks.
      -Rounding fix to update of average noise level metric.
      -Make default internal denoiser mode == kDenoiserOnYUV (in denoiser set_parameters()).
      -Adjust some thresholds.
      Change-Id: Ib827512b25a7bf1f66c76d3045f3a68ce56b1cd2
  7. 22 Oct, 2014 2 commits
  8. 17 Oct, 2014 1 commit
    • Marco's avatar
      Updates to aggressive denoising mode. · 6f77bff6
      Marco authored
      Fix to the noise level and bitrate threshold settings per resolution.
      Change-Id: I25524b7f78afa1aeb76edef7be13c17bc8976508
  9. 13 Oct, 2014 1 commit
  10. 08 Oct, 2014 1 commit
    • Marco's avatar
      vp8: Suppress denoising with respect to old reference frames. · 3b789d36
      Marco authored
      If the GOLDEN or ALTREF frame was last updated > x frames in the past,
      don't use them for denoising (only consider LAST). Using an old reference
      frame for denoising, e.g., if it is a long-term reference or the last key frame,
      can cause some visible artifacts, in particular in the aggressive denoising mode.
      Change-Id: I239c9fbb092c36cba7e95328f1fa67a58d6a7ed9
  11. 25 Sep, 2014 3 commits
    • Johann's avatar
      Fix build failure with Android NDK · 587ff646
      Johann authored
      The version of gcc4.6 included with the Android NDK through r10b
      fails to compile this function. Replace it with C code.
      Change-Id: Ifcc0476664071aec46a171cdd5ad17305930986a
    • Johann's avatar
      Clarify GCC version check · f6be2f3c
      Johann authored
      The version check was incorrectly matching some versions of clang
      which reported as gcc 4.2
      Change-Id: I686d3576e71883fe1463206b56ab5e2aa9bb68a8
    • Yaowu Xu's avatar
      Fix IOCs · e6165041
      Yaowu Xu authored
      A left shift of negative value causes IOC runtime warnings, this
      commit converts two such left shifts to multiply to avoid IOCs.
      Change-Id: I8811428768d7135e6e16af4b3094d0341589a995
  12. 19 Sep, 2014 1 commit
    • Marco's avatar
      vp8: Update to the adaptive denoising mode. · 06fce6b6
      Marco authored
      Allow for option to apply spatial blur for temporal
      denoising, under the aggressive denoising mode.
      Change-Id: I41c5fdc0b6cf32d8f8d1d4236b25fa5aa406e89e
  13. 16 Sep, 2014 1 commit
  14. 15 Sep, 2014 1 commit
  15. 13 Sep, 2014 2 commits
  16. 12 Sep, 2014 1 commit
  17. 10 Sep, 2014 1 commit
  18. 09 Sep, 2014 2 commits
  19. 08 Sep, 2014 1 commit
  20. 05 Sep, 2014 2 commits
  21. 04 Sep, 2014 4 commits
  22. 03 Sep, 2014 4 commits
  23. 02 Sep, 2014 2 commits
    • Deb Mukherjee's avatar
      Adds config opt for highbitdepth + misc. vpx · 5acfafb1
      Deb Mukherjee authored
      Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
      Also includes most vpx level high bit-depth functions. However
      encode/decode in the highbitdepth profiles will not work until
      the rest of the code is in place.
      Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
    • Marco's avatar
      Updates to adaptive/aggressive denoiser mode. · 54575d65
      Marco authored
      Parameter changes and modification to zero_last bias.
      Change-Id: I50a408d47fde049c562bbe95075194cb0f17c31b
  24. 29 Aug, 2014 1 commit
  25. 28 Aug, 2014 1 commit
    • Dmitry Kovalev's avatar
      Removing alg_priv from vpx_codec_priv struct. · 73edeb03
      Dmitry Kovalev authored
      In order to understand memory layout consider the declaration of the
      following structs. The first one is a part of our API:
      struct vpx_codec_ctx {
        // ...
        struct vpx_codec_priv *priv;
      The second one is defined in vpx_codec_internal.h:
      struct vpx_codec_priv {
        // ...
      The following struct is defined 4 times for encoder/decoder VP8/VP9:
      struct vpx_codec_alg_priv {
        struct vpx_codec_priv base;
        // ... 
      Private data allocation for the given ctx:
      struct vpx_codec_ctx *ctx = <get>
      struct vpx_codec_alg_priv *alg_priv = <allocate>
      ctx->priv = (struct vpx_codec_priv *)alg_priv;
      The cast works because vpx_codec_alg_priv has a
      vpx_codec_priv instance as a first member 'base'.
      Change-Id: I10d1afc8c9a7dfda50baade8c7b0296678bdb0d0
  26. 26 Aug, 2014 1 commit