1. 09 Oct, 2014 1 commit
  2. 03 Oct, 2014 1 commit
    • Deb Mukherjee's avatar
      Incorporate WRAPLOW macro into non-highbitdepth tx · d50716fa
      Deb Mukherjee authored
      Incorporates the WRAPLOW macro into the non-highbitdepth transforms
      to aid hardware verification between a software C model and an
      intended hardware implementation though the use of the configure
      options: --enable-experimental --enable-emulate-hardware.
      Note that to avoid further discrepancies between the sse/sse2
      implementations of the transforms and the C implementation, when the
      emulate hardware option is invoked, we also disable sse/sse2/etc.
      Also incudes some minor cleanups/renaming etc.
      Change-Id: Ib864d8493313927d429cce402982f1c8e45b3287
  3. 20 Sep, 2014 1 commit
    • hkuang's avatar
      Fix compile warning. · db71c1bd
      hkuang authored
      warning: comparison between signed and unsigned integer expressions.
      Change-Id: Ib6ee7500fe910983f290fc321ad89c0ab9989455
  4. 18 Sep, 2014 1 commit
  5. 12 Sep, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds high bitdepth transform functions and tests · 10783d4f
      Deb Mukherjee authored
      Adds various high bitdepth transform functions and tests.
      Much of the changes are related to using typedefs tran_low_t
      and tran_high_t for the final transform cofficients and intermediate
      stages of the transform computation respectively rather than fixed
      types int16_t/int. When vp9_highbitdepth configure flag is off,
      these map tp int16_t/int32_t, but when the flag is on, they map
      to int32_t/int64_t to make space for needed extra precision.
      Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
  6. 11 Sep, 2014 1 commit
  7. 07 Aug, 2014 1 commit
    • levytamar82's avatar
      Fix bug 804 · 839911fb
      levytamar82 authored
      A bug in Microsoft compiler was found in the function
      vp9_filter_block1d16_v8_avx2 and a workaround applied.
      the bug occur when there was 4 consecutive maddubs + min + adds
      intrinsic instructions.
      Change-Id: I83499faeb70971e650e5663fd2490360ddb1a51b
  8. 19 Jul, 2014 1 commit
  9. 10 Jul, 2014 1 commit
    • James Zern's avatar
      tests: add API_REGISTER_STATE_CHECK · 29e1b1a4
      James Zern authored
      used to wrap API functions to ensure full environment consistency as
      opposed to the renamed ASM_REGISTER_STATE_CHECK which is used with
      assembly functions.
      currently checks the FPU tag word in x86/x86_64 gcc builds to ensure
      emms has been called.
      Change-Id: Ie241772dbf903d33d516a1add4c8c6783f2e1490
  10. 10 Jun, 2014 1 commit
  11. 27 May, 2014 1 commit
  12. 23 May, 2014 1 commit
    • Yaowu Xu's avatar
      Use extreme values for input in convovle tests · 077144d2
      Yaowu Xu authored
      The intepolation filter functions can be better tested withe extreme
      values, especially given the optimization functions are prone to
      overflow signed 16 bit intermediate value when operation order is
      Change-Id: I712142b0bc1e5969c692c0486a57ffa37c9742b5
  13. 14 May, 2014 1 commit
  14. 12 May, 2014 1 commit
  15. 21 Apr, 2014 1 commit
  16. 24 Jan, 2014 1 commit
  17. 19 Nov, 2013 1 commit
  18. 10 Oct, 2013 1 commit
    • Yunqing Wang's avatar
      SSE2 8-tap sub-pixel filter optimization · 3fb728c7
      Yunqing Wang authored
      To ensure fast encoding/decoding on devices without ssse3 support,
      SSE2 optimization of sub-pixel filters was done. Test using 1080p
      clip showed the decoder speeds were ~70fps with ssse3 filters, ~60fps
      with sse2 filters, and ~15fps with c filters.
      Change-Id: Ie2088f87d83a889fba80a613e4d0e287aadd785c
  19. 02 Oct, 2013 1 commit
  20. 30 Aug, 2013 1 commit
    • Tero Rintaluoma's avatar
      Fix intermediate height in convolve_c · e326cecf
      Tero Rintaluoma authored
      - Intermediate height was not correct i.e. when block size is 4 and
        y_step_q4 is 6. In this case intermediate height was
        (4*6) >> 4 = 1 and vertical interpolation needs two source pixels
        plus 7 extra pixels for taps.
      - Also if the current output block is 16x16 and we are using 4x upscaling
        we need only 12 rows after horizontal filtering instead of 16.
        Patch Set 2: Intermediate_height updated after CL 66723
                     "Fix bug in convolution functions (filter selection)"
      Change-Id: I5a1a1bc2ac9d5edb3a6e0818de618bf318fdd589
  21. 23 Aug, 2013 1 commit
    • Adrian Grange's avatar
      Fix bug in convolution functions (filter selection) · 3f108313
      Adrian Grange authored
      (In response to Issue 604:
      There were bugs in the convolution code for two cases:
      1. Where the filter table was assumed to be aligned to a
         256 byte boundary. The offset of the pixel in the
         source buffer was computed incorrectly.
      2. Where no such alignment assumption was made. An
         incorrect address for the filter table base was used.
      To fix both problems, I now assume that the filter table is
      256-byte aligned and modify the pixel offset calculation to
      A later patch should remove the restriction that the filter
      table is aligned to a 256-byte boundary.
      There was also a bug in the ConvolveTest unit test
      (Bug & initial fix suggestion submitted by Tero Rintaluoma
      and Sami Pietilä).
      Change-Id: I71985551e62846e55e40de9e7e3959d4805baa82
  22. 05 Aug, 2013 1 commit
    • Jim Bankoski's avatar
      Begin to restrict x86inc.asm usage · c3809f3d
      Jim Bankoski authored
      Chromium does not support 32bit builds for Mac which use x86inc.asm.
      Make the files which include it work if 64bit or not PIC enabled
      starting with vp9_copy_sse2.asm
      Consolidate these targets in vp9_rtcd_defs.sh
      Change-Id: If18f0b957a611efd085a3ee7d245cf1eb91e8248
  23. 17 Jul, 2013 1 commit
    • Johann's avatar
      vp9_convolve8_neon placeholder · 59dc4e9c
      Johann authored
      Call the individually optimized horizontal and vertical functions. This
      implementation abuses the temp buffer.
      This will be replaced with a custom optimized function.
      Over 2x speedup.
      Change-Id: I5b908d2a73d264e9810d6022bbff73207a3055dd
  24. 12 Jul, 2013 1 commit
    • Johann's avatar
      vp9_convolve8_[horiz|vert]_avg · a15bebfc
      Johann authored
      Super basic conversion from the other implementations. Any changes to
      one should be trivial to copy over keep in sync.
      Change-Id: I1720b4128e0aba4b2779e3761f6494f8a09d3ea8
  25. 11 Jul, 2013 2 commits
  26. 18 Jun, 2013 1 commit
  27. 10 Jun, 2013 1 commit
    • Deb Mukherjee's avatar
      Cosmetic cleanups of filters · 995ce523
      Deb Mukherjee authored
      No bitstream change.
      Removes unused filters and the code for the case of 2 switchable filters;
      also changes the 8tap-smooth filter coefficients for integer shifts to be
      interpolating to be consistent with the way it is implemented currently.
      Change-Id: I96c542fd8c06f4e0df507a645976f58e6de92aae
  28. 03 May, 2013 1 commit
  29. 02 May, 2013 1 commit
    • James Zern's avatar
      convolve_test: remove unnecessary memset · b0e5775e
      James Zern authored
      input_ is filled with random values just afterward.
      the size was wrong anyway as input_ is allocated with memalign so
      Change-Id: I014b832ac60960cd22b6f369dbc9fd648d4055b5
  30. 18 Apr, 2013 1 commit
    • John Koleszar's avatar
      convolve: support larger blocks, fix asm saturation bug · a9ebbcc3
      John Koleszar authored
      Updates the common convoloution code to support blocks larger than
      16x16, and rectangular blocks. This uncovered a bug in the SSSE3
      filtering routines due to the order of application of saturation.
      This commit fixes that bug, adjusts the unit test to bias its
      random values towards the extremes, and adds a test to ensure that
      all filters conform to the expected pairwise addition structure.
      Change-Id: I81f69668b1de0de5a8ed43f0643845641525c8f0
  31. 27 Feb, 2013 3 commits
    • John Koleszar's avatar
      convolve test: validate 1D filters are 1D · 04c24078
      John Koleszar authored
      Since the 8-tap lowpass filter is non-interpolating, the results are
      different between applying it at whole-pel values and not. This
      means that 1D-only versions are requried to be implemented, as
      opposed to being an optimization of the 2D case. Calling the 2D
      filter instead of the horizontal-only filter is not equivalent
      in this case. Update the test to pass invalid filters to the
      unused stage of the 1D-only calls, to verify they're unused.
      Change-Id: Idc1c490f059adadd4cc80dbe770c1ccefe628b0a
    • John Koleszar's avatar
      Run all filters through convolve test · 557a1b20
      John Koleszar authored
      Updates the convolve test to verify that all filters match the
      reference implementation. This verifies commit 30f866f4, which
      fixed some problems with the SSE3 version of the filters for
      the vp9_sub_pel_filters_8s and vp9_sub_pel_filters_8lp banks
      due to overflow and order of operations.
      Change-Id: I6b5fe1a41bc20062e2e64633b1355ae58c9c592c
    • John Koleszar's avatar
      Use 256-byte aligned filter tables · 6fd7dd1a
      John Koleszar authored
      This avoids duplicating all the filters twice. Includes fixups to the
      convolve routines and associated tests to make this work.
      Change-Id: I922f86021594e55072ddb63b42b2313605db6e00
  32. 26 Feb, 2013 1 commit
    • John Koleszar's avatar
      Refactor inter recon functions to support scaling · 6a4f708c
      John Koleszar authored
      Ensure that all inter prediction goes through a common code path
      that takes scaling into account. Removes a bunch of duplicate
      1st/2nd predictor code. Also introduces a 16x8 mode for 8x8
      MVs, similar to the 8x4 trick we were doing before. This has an
      unexpected effect with EIGHTTAP_SMOOTH, so it's disabled in that
      case for now.
      Change-Id: Ia053e823a8bc616a988a0af30452e1e75a739cba
  33. 08 Feb, 2013 1 commit
    • John Koleszar's avatar
      Restore SSSE3 subpixel filters in new convolve framework · 29d47ac8
      John Koleszar authored
      This commit adds the 8 tap SSSE3 subpixel filters back into the code
      underneath the convolve API. The C code is still called for 4x4
      blocks, as well as compound prediction modes. This restores the
      encode performance to be within about 8% of the baseline.
      Change-Id: Ife0d81477075ae33c05b53c65003951efdc8b09c
  34. 05 Feb, 2013 1 commit
    • John Koleszar's avatar
      Add 8-tap generic convolver · 5ca6a366
      John Koleszar authored
      This commit introduces a new convolution function which will be used to
      replace the existing subpixel interpolation functions. It is much the
      same as the existing functions, but allows for changing the filter
      kernel on a per-pixel basis, and doesn't bake in knowledge of the
      filter to be applied or the size of the resulting block into the
      function name.
      Replacing the existing subpel filters will come in a later commit.
      Change-Id: Ic9a5615f2f456cb77f96741856fc650d6d78bb91