1. 10 Sep, 2015 1 commit
    • Angie Chiang's avatar
      Isolate vp10's inv_txfm from vp9 · 87175ed5
      Angie Chiang authored
      1) copy following files from vpx_dsp/ to vp10/common/
      vp10_inv_txfm.c
      vp10_inv_txfm.h
      vp10_inv_txfm_sse2.c
      vp10_inv_txfm_sse2.h
      
      2) change the function prefix "vpx_" to "vp10_" in above files
      
      3) add unit test at vp10_inv_txfm_test.cc
      
      Change-Id: I206f10f60c8b27d872c84b7482c3bb1d1cb4b913
      87175ed5
  2. 04 Aug, 2015 1 commit
  3. 31 Jul, 2015 2 commits
    • Jingning Han's avatar
      Factor inverse transform functions into vpx_dsp · e8b133c7
      Jingning Han authored
      This commit moves the module inverse transform functions from vp9
      to vpx_dsp folder. The hybrid transform wrapper functions stay in
      the vp9 folder, since it involves codec-specific data structures.
      
      Change-Id: Ib066367c953d3d024c73ba65157bbd70a95c9ef8
      e8b133c7
    • Zoe Liu's avatar
      Code refactor on InterpKernel · 7186a2dd
      Zoe Liu authored
      It in essence refactors the code for both the interpolation
      filtering and the convolution. This change includes the moving
      of all the files as well as the changing of the code from vp9_
      prefix to vpx_ prefix accordingly, for underneath architectures:
      (1) x86;
      (2) arm/neon; and
      (3) mips/msa.
      The work on mips/drsp2 will be done in a separate change list.
      
      Change-Id: Ic3ce7fb7f81210db7628b373c73553db68793c46
      7186a2dd
  4. 26 Jul, 2015 1 commit
    • Jingning Han's avatar
      Refactor vp9_idct.h file · 5ebc8feb
      Jingning Han authored
      Separate the common coefficient constant into vpx_dsp/txfm_common.h.
      Move the SSE2 macro definitions to vpx_dsp/x86/txfm_common_sse2.h.
      This clears the use case of vp9_idct.h in vpx_dsp folder.
      
      Change-Id: I319735a2abf42888e5080ac14cfbcde34be7b121
      5ebc8feb
  5. 08 Jul, 2015 1 commit
  6. 13 May, 2015 1 commit
    • Johann's avatar
      Relocate memory operations for common code · 1d7ccd53
      Johann authored
      With the sad functions, and hopefully the variance functions soon,
      moving to the vpx_dsp location, place the defines used in the
      reference C code in a common location.
      
      Change-Id: I4c8ce7778eb38a0a3ee674d2f1c488eda01cfeca
      1d7ccd53
  7. 06 Jan, 2015 1 commit
  8. 24 Nov, 2014 1 commit
    • Peter de Rivaz's avatar
      Refactored idct routines and headers · 3a8c43a4
      Peter de Rivaz authored
      This change is made in preparation for a
      subsequent patch which adds acceleration
      for the highbitdepth transform functions.
      
      The highbitdepth transform functions attempt
      to use 16/32bit sse instructions where possible,
      but fallback to using the C implementations if
      potential overflow is detected.  For this reason
      the dct routines are made global so they can be
      called from the acceleration functions in the
      subsequent patch.
      
      Change-Id: Ia921f191bf6936ccba4f13e8461624b120c1f665
      (cherry picked from commit 454342d4)
      3a8c43a4
  9. 05 Nov, 2014 1 commit
  10. 09 Oct, 2014 1 commit
  11. 06 Oct, 2014 1 commit
  12. 01 Oct, 2014 2 commits
  13. 30 Sep, 2014 2 commits
    • James Zern's avatar
      Revert "Fix compiling error in vp9_idct.h" · 4a296e6b
      James Zern authored
      This reverts commit eafc8c9c.
      
      tran_low_t/tran_high_t don't belong in a public header, they're private.
      Similarly the public headers shouldn't rely on config defines,
      vpx_config.h isn't installed.
      
      Change-Id: I194ec273598da418df8dd727b6c0e78a556740ad
      4a296e6b
    • Jingning Han's avatar
      Fix compiling error in vp9_idct.h · eafc8c9c
      Jingning Han authored
      This commit fixes a compiling error in vp9_idct.h, where the codec
      checks that the intermediate steps of transformation fit within
      16-bit length. The issue was due to broken file dependency.
      
      Change-Id: Ib22bba13a1e6df28489cb23d6774c561969f1fdc
      eafc8c9c
  14. 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
      10783d4f
  15. 07 Aug, 2014 1 commit
    • Yaowu Xu's avatar
      configure: add --enable-coefficient-range-checking · 0a2b25dc
      Yaowu Xu authored
      This commit adds a configure time option used to enable strict error
      checking in decoder to make sure intermediate stage cofficients of
      inverse transforms are within valid range of signed 16 bit integer.
      
      For valid VP9 input streams, intermediate stage coefficients should
      always stay within the range of a signed 16 bit integer. Coefficients
      can go out of this range for invalid/corrupt VP9 streams. However,
      strictly checking this range for every intermediate coefficient can
      be a burden for decoder, therefore such validation is only enabled
      with configure option --enable-coefficient-range-checking.
      
      Change-Id: I47d47c8c4e48a922c3d223ca59064f51b3f0f5ed
      0a2b25dc
  16. 28 May, 2014 1 commit
    • Jingning Han's avatar
      Enable SSSE3 inverse 2D-DCT with 10 non-zero coeffs · 6d21cbd2
      Jingning Han authored
      This commit enables SSSE3 implementation of the inverse 2D-DCT
      with only first 10 coefficients non-zero. It reduces the runtime
      of SSE2 version from 745 cycles to 538 cycles, i.e., 27% speed-up.
      
      Change-Id: I18ba4128859b09c704a6ee361d69a86c09fe8dfe
      6d21cbd2
  17. 01 May, 2014 1 commit
  18. 24 Jan, 2014 1 commit
  19. 21 Nov, 2013 1 commit
    • Jingning Han's avatar
      Take out assertion from inverse transforms · 272c82c1
      Jingning Han authored
      Separate the rounding and right shift operations of forward transform
      from those of inverse transform. Take out the assertion check from
      inverse transforms. If the transform coefficients were constructed to
      cause intermediate steps of inverse transform overflow, the codec will
      just let it overflow without breaking the decoding flow.
      
      Change-Id: Ia7ce15dfd1a73b4abbaa78cbc74ec718523c5b1b
      272c82c1
  20. 15 Nov, 2013 1 commit
    • Jingning Han's avatar
      Take out assertion from inverse transforms · bdc43711
      Jingning Han authored
      Separate the rounding and right shift operations of forward transform
      from those of inverse transform. Take out the assertion check from
      inverse transforms. If the transform coefficients were constructed to
      cause intermediate steps of inverse transform overflow, the codec will
      just let it overflow without breaking the decoding flow.
      
      Change-Id: I73cfc3706c4e840fc543a77cbc4cdb0b05d07730
      bdc43711
  21. 12 Oct, 2013 1 commit
  22. 11 Oct, 2013 2 commits
  23. 10 Oct, 2013 1 commit
  24. 07 Oct, 2013 1 commit
    • Dmitry Kovalev's avatar
      Giving consistent names to IDCT 16x16 functions. · b096c5a3
      Dmitry Kovalev authored
      Renames:
        vp9_short_idct16x16_add    -> vp9_idct16x16_256_add
        vp9_short_idct16x16_10_add -> vp9_idct16x16_10_add
        vp9_short_idct16x16_1_add  -> vp9_idct16x16_1_add
        vp9_idct_add_16x16         -> vp9_idct16x16_add
      
      Change-Id: Ief8a3904de78deab0f4ede944c4d0339c228cfc3
      b096c5a3
  25. 06 Oct, 2013 1 commit
    • Dmitry Kovalev's avatar
      Giving consistent names to IDCT 8x8 functions. · c6ad70d5
      Dmitry Kovalev authored
      Renames:
        vp9_short_idct8x8_add    -> vp9_idct8x8_64_add
        vp9_short_idct8x8_1_add  -> vp9_idct8x8_1_add
        vp9_short_idct8x8_10_add -> vp9_idct8x8_10_add
        vp9_idct_add_8x8         -> vp9_idct8x8_add
      
      Change-Id: Ifb8d3a45b4c0397aa805b30463f3d14581bf72c1
      c6ad70d5
  26. 04 Oct, 2013 1 commit
    • Dmitry Kovalev's avatar
      Giving consistent names to IDCT/IWHT functions. · 3a060257
      Dmitry Kovalev authored
      The idea is to have the following names for each transform size:
      
      vp9_idct4x4_add
        vp9_idct4x4_1_add
        vp9_idct4x4_10_add
        vp9_idct4x4_16_add
      
      vp9_idct8x8_add
        vp9_idct8x8_1_add
        vp9_idct8x8_10_add
        vp9_idct8x8_64_add
      
      etc for 16x16, 32x32
      
      The actual list of renames in this patch:
      
      vp9_idct_add_lossless     -> vp9_iwht4x4_add
      vp9_short_iwalsh4x4_add   -> vp9_iwht4x4_16_add
      vp9_short_iwalsh4x4_1_add -> vp9_iwht4x4_1_add
      
      vp9_idct_add            -> vp9_idct4x4_add
      vp9_short_idct4x4_add   -> vp9_idct4x4_16_add
      vp9_short_idct4x4_1_add -> vp9_idct4x4_1_add
      
      Change-Id: I6f43f7437c68dd30cdd05d72e213765578ed30b1
      3a060257
  27. 02 Oct, 2013 1 commit
    • Dmitry Kovalev's avatar
      Moving all idct/iht functions in one place. · be7eec79
      Dmitry Kovalev authored
      Moving functions from vp9_idct_blk to vp9_idct because these functions are
      used from both encoder and decoder. Removing duplicated code from
      vp9_encodemb.c and reusing existing functions.
      
      Change-Id: Ia0a6782f8c4c409efb891651b871dd4bf22d5fe8
      be7eec79
  28. 24 Sep, 2013 1 commit
    • Yaowu Xu's avatar
      Rename defined constants · 6037f179
      Yaowu Xu authored
      The change is to better reflect the nature of the constants.
      
      Change-Id: Icabac6e9bceefbdb3f03f8218f88ef75943c30fb
      6037f179
  29. 19 Sep, 2013 1 commit
  30. 12 Aug, 2013 1 commit
    • Jingning Han's avatar
      SSE2 high precision 32x32 forward DCT · 78136edc
      Jingning Han authored
      Enable SSE2 implementation of high precision 32x32 forward DCT. The
      intermediate stacks are of 32-bits. The run-time goes down from
      32126 cycles to 13442 cycles.
      
      Change-Id: Ib5ccafe3176c65bd6f2dbdef790bd47bbc880e56
      78136edc
  31. 16 Jul, 2013 1 commit
  32. 29 Jun, 2013 1 commit
  33. 18 Jun, 2013 1 commit
    • Jingning Han's avatar
      Make fdct32 computation flow within 16bit range · a41a4860
      Jingning Han authored
      This commit makes use of dual fdct32x32 versions for rate-distortion
      optimization loop and encoding process, respectively. The one for
      rd loop requires only 16 bits precision for intermediate steps.
      The original fdct32x32 that allows higher intermediate precision (18
      bits) was retained for the encoding process only.
      
      This allows speed-up for fdct32x32 in the rd loop. No performance
      loss observed.
      
      Change-Id: I3237770e39a8f87ed17ae5513c87228533397cc3
      a41a4860
  34. 30 May, 2013 1 commit
    • Yaowu Xu's avatar
      Changed to use a new variant of WHT · 042e70e4
      Yaowu Xu authored
      The commit changed to use a new variant of Walsh-Hadamard Transform
      by Tim Terriberry. This new variant has the best compression among a
      number of variants that developed by Tim.
      
      Change-Id: Icb3a88515463cfc644b17ca046fcd139db2557e9
      042e70e4
  35. 18 Mar, 2013 1 commit
    • Yunqing Wang's avatar
      Optimize 8x8 idct function · 6344c84c
      Yunqing Wang authored
      Wrote sse2 functions of vp9_short_idct8x8 and vp9_short_idct10_8x8.
      Compared to c version, the sse2 version is 2X faster. The decoder
      test didn't show noticeable gain since 8x8 idct doesn't take much
      of decoding time (less than 1% in my test).
      
      Change-Id: I56313e18cd481700b3b52c4eda5ca204ca6365f3
      6344c84c
  36. 07 Mar, 2013 1 commit