1. 19 Jun, 2014 1 commit
    • Johann's avatar
      Remove labels from quantize · fec6886f
      Johann authored
      Use break instead of goto for early exit. Unbreaks Visual Studio
      builds.
      
      Change-Id: I96dee43a3c82145d4abe0d6a99af6e6e1a3991b5
      fec6886f
  2. 18 Jun, 2014 1 commit
  3. 21 May, 2014 2 commits
    • Marco Paniconi's avatar
      Fix to reduce block artifacts from vp8 temporal denoiser. · 4e81ab82
      Marco Paniconi authored
      If the denoiser filter causes too big a change in the absolute pixel difference
      (between source and denoised signal), the block is not denoised, which can cause
      visual block artifacts. This change applies a second adjustment to the temporal filter
      to effectively allow for a (weaker) denoising for such blocks (which can keep
      the absolute differnence within the tolerance range in most cases).
      This helps to reduce some of the block artifacts from the denoising.
      The additional cost of re-applying the filter to this set of blocks is low,
      as the percentage of blocks per frame (with too big a change in absolute pixel difference)
      is typically small, 2-5%.
      
      Change-Id: Id9b56e59e33f3c22e79d2f89f763bdde246fdf3f
      4e81ab82
    • Deb Mukherjee's avatar
      Renames x86_64 specific asm files · e2722734
      Deb Mukherjee authored
      Renames all x86_64 specific assembly files to consistently
      end in _x86_64.asm. This will be useful for build systems to
      handle these files differently.
      All new 64-bit specific assembly files should use the new
      naming convention.
      
      Change-Id: I36c89584967c82ffc4088b1b5044ac15d2bb7536
      e2722734
  4. 16 May, 2014 1 commit
  5. 14 May, 2014 1 commit
  6. 08 May, 2014 1 commit
  7. 07 May, 2014 1 commit
  8. 02 May, 2014 2 commits
  9. 24 Apr, 2013 1 commit
    • Johann's avatar
      Rename quantize_sse2_intrinsics.c · fe74c428
      Johann authored
      The only reason for the _intrinsics part of the file name was for the
      interim period where only one of the functions was redone and the base
      file name was the same.
      
      Change-Id: I7851154f1633d48821bee885b1cadb2148e65a23
      fe74c428
  10. 22 Mar, 2013 1 commit
  11. 04 Mar, 2013 1 commit
  12. 01 Mar, 2013 1 commit
    • Johann's avatar
      Use intrinsics for sse2 regular quantize · eca59cad
      Johann authored
      Remove dependency of this function on asm_offsets. ssse3/sse4 next.
      
      Change quant_shift calculation so it be done using SIMD. Pre-calculate
      as much as possible to simplify EOB selection.
      
      Take advantage of qcoeff being zero'd by tying the if statements
      together.
      
      Speed parity with previous implementation with gcc x86_64 linux
      
      Change-Id: Ife97556a1eca3a74b09def1a3d04084974dff1fb
      eca59cad
  13. 27 Feb, 2013 1 commit
  14. 26 Feb, 2013 1 commit
    • Johann's avatar
      vp8 fast quantizer with intrinsics · ef887974
      Johann authored
      Reduce dependency on offsets file by using intrinsics. Disassembly shows
      improvements over previous assembly specifically in register management,
      preloading, and {pro,epi}log. Speed change is within margin of error.
      
      Change-Id: I8131b4b4d62bc092407fe847bfaa8f2c0e1384ff
      ef887974
  15. 01 Feb, 2013 1 commit
  16. 20 Dec, 2012 1 commit
  17. 15 Nov, 2012 1 commit
  18. 01 Nov, 2012 2 commits
  19. 31 Oct, 2012 3 commits
  20. 29 Oct, 2012 2 commits
  21. 22 Oct, 2012 1 commit
  22. 16 Oct, 2012 1 commit
  23. 31 Aug, 2012 1 commit
    • Yunqing Wang's avatar
      Encoder denoiser performance improvement · 64075c9b
      Yunqing Wang authored
      The denoiser function was modified to reduce the computational
      complexity.
      
      1. The denoiser c function modification:
      The original implementation calculated pixel's filter_coefficient
      based on the pixel value difference between current raw frame and last
      denoised raw frame, and stored them in lookup tables. For each pixel c,
      find its coefficient using
          filter_coefficient[c] = LUT[abs_diff[c]];
      and then apply filtering operation for the pixel.
      
      The denoising filter costed about 12% of encoding time when it was
      turned on, and half of the time was spent on finding coefficients in
      lookup tables. In order to simplify the process, a short cut was taken.
      The pixel adjustments vs. pixel diff value were calculated ahead of time.
          adjustment = filtered_value - current_raw
                     = (filter_coefficient * diff + 128) >> 8
      
      The adjustment vs. diff curve becomes flat very quick when diff increases.
      This allowed us to use only several levels to get a close approximation
      of the curve. Following the denoiser algorithm, the adjustments are
      further modified according to how big the motion magnitude is.
      
      2. The sse2 function was rewritten.
      
      This change made denoiser filter function 3x faster, and improved the
      encoder performance by 7% ~ 10% with the denoiser on.
      
      Change-Id: I93a4308963b8e80c7307f96ffa8b8c667425bf50
      64075c9b
  24. 08 Aug, 2012 1 commit
    • Deb Mukherjee's avatar
      Merging in the sixteenth subpel uv experiment · 7d065653
      Deb Mukherjee authored
      Merges this experiment in to make it easier to run tests on
      filter precision, vectorized implementation etc.
      
      Also removes an experimental filter.
      
      Change-Id: I1e8706bb6d4fc469815123939e9c6e0b5ae945cd
      7d065653
  25. 17 Jul, 2012 1 commit
  26. 11 Jun, 2012 1 commit
    • John Koleszar's avatar
      Fix pedantic compiler warnings · 0164a1cc
      John Koleszar authored
      Allows building the library with the gcc -pedantic option, for improved
      portabilty. In particular, this commit removes usage of C99/C++ style
      single-line comments and dynamic struct initializers. This is a
      continuation of the work done in commit 97b766a4, which removed most
      of these warnings for decode only builds.
      
      Change-Id: Id453d9c1d9f44cc0381b10c3869fabb0184d5966
      0164a1cc
  27. 31 May, 2012 4 commits
  28. 30 May, 2012 4 commits
    • Stefan Holmer's avatar
      Added another denoising threshold for finding DC shifts. · dd6134b4
      Stefan Holmer authored
      Compares the sum of differences between the input block and the averaged
      block. If they differ too much the block will not be filtered. Negligible
      perfomance hit.
      
      Change-Id: Ib1c31a265efd4d100b3abc4a1ea6675038c8ddde
      dd6134b4
    • Alpha Lam's avatar
      Make libvpx Chromium build friendly · fc2fc899
      Alpha Lam authored
      Add PRIVATE macro for adding private_extern directive for yasm
      to hide global symbols. This is only enabled if -DCHROMIUM is used
      with YASM.
      
      Also fixed a small problem with	rtcd_defs.sh to guard TEMPORAL_DENOISING.
      
      Change-Id: I9027fce3ebddcf20078293e4b86b396f21da7857
      fc2fc899
    • Christian Duvivier's avatar
      Inline Intrinsic optimized Denoiser · 5715c39c
      Christian Duvivier authored
      Faster version of denoiser, cut cost by 1.7x for C path, by 3.3x for
      SSE2 path.
      
      Change-Id: I154786308550763bc0e3497e5fa5bfd1ce651beb
      5715c39c
    • Stefan Holmer's avatar
      Added another denoising threshold for finding DC shifts. · d8500344
      Stefan Holmer authored
      Compares the sum of differences between the input block and the averaged
      block. If they differ too much the block will not be filtered. Negligible
      perfomance hit.
      
      Change-Id: Ib1c31a265efd4d100b3abc4a1ea6675038c8ddde
      d8500344