1. 06 Sep, 2014 1 commit
  2. 02 Sep, 2014 1 commit
    • Dmitry Kovalev's avatar
      Removing MMX SAD calculation code. · 318fc0c3
      Dmitry Kovalev authored
      Removed functions:
      * vp9_sad_16x16_mmx
      * vp9_sad_8x16_mmx
      * vp9_sad_16x8_mmx
      * vp9_sad_8x8_mmx
      * vp9_sad_4x4_mmx
      
      Change-Id: Ic5174b93b64d65d846f0c11e72cab149e9472bc3
      318fc0c3
  3. 29 Aug, 2014 1 commit
    • Dmitry Kovalev's avatar
      Removing variance MMX code. · 12cd6f42
      Dmitry Kovalev authored
      Removed functions:
      * vp9_mse16x16_mmx
      * vp9_get_mb_ss_mmx
      * vp9_get4x4var_mmx
      * vp9_get8x8var_mmx
      * vp9_variance4x4_mmx
      * vp9_variance8x8_mmx
      * vp9_variance16x16_mmx
      * vp9_variance16x8_mmx
      * vp9_variance8x16_mmx
      
      They all have SSE2 equivalent.
      
      Change-Id: I3796f2477c4f59b35b4828f46a300c16e62a2615
      12cd6f42
  4. 31 Jul, 2014 1 commit
  5. 30 Jul, 2014 2 commits
  6. 29 Jul, 2014 1 commit
  7. 24 Jul, 2014 1 commit
  8. 16 Jul, 2014 1 commit
  9. 02 Jul, 2014 1 commit
    • Alex Converse's avatar
      Split vp9_rdopt into vp9_rdopt and vp9_rd. · 03c276ea
      Alex Converse authored
      vp9_rdopt is for making rd optimal mode decisions. vp9_rd is for all
      other rd related routines. Anything used outside of making an rd optimal
      decision belongs in rd.
      
      Change-Id: I772a3073f7588bdf139f551fb9810b6864d8e64b
      03c276ea
  10. 25 Jun, 2014 1 commit
  11. 12 Jun, 2014 1 commit
  12. 21 May, 2014 1 commit
    • 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
  13. 14 May, 2014 1 commit
    • levytamar82's avatar
      AVX2 To VP9 Block Error Optimization · 1fbab853
      levytamar82 authored
      vp9_block_error_sse2 can only handle 16 bytes at a time but
      the function requires to handle a sequence of 32 bytes at a time
      so each 16 bytes is handled in a different register.
      With AVX2 optimization the 32 bytes can be handled in one register instead
      of two in the SSE2
      The vp9_block_error was optimized by 85%.
      The user level was optimized by 1.2%
      
      Change-Id: Ia8fffe60e61eff7432a5fbd538757894f6c319fd
      1fbab853
  14. 08 May, 2014 1 commit
  15. 07 May, 2014 1 commit
    • Paul Wilkins's avatar
      Revert "Add an MMX fwht4x4" · 33b1c457
      Paul Wilkins authored
      Includes changes that are not compatible with VS windows builds.
      Amongst other things stdint.h is not supported in VS.
      
      This reverts commit 89fbf3de.
      
      Change-Id: Ifa86d7df250578d1ada9b539c9ff12ed0c523cdd
      33b1c457
  16. 05 May, 2014 1 commit
    • Alex Converse's avatar
      Add an MMX fwht4x4 · 89fbf3de
      Alex Converse authored
      7% faster encoding a desktop lossless at RT speed 4.
      
      Change-Id: I41627f5b737752616b6512bb91a36ec45995bf64
      89fbf3de
  17. 30 Apr, 2014 1 commit
  18. 29 Apr, 2014 1 commit
    • Jingning Han's avatar
      Enable SSSE3 implementation of 8x8 forward 2D-DCT · 1eaa3a76
      Jingning Han authored
      Assembly implementation of ssse3 8x8 forward 2D-DCT. The current
      version is turned on only for x86_64. The average unit runtime
      goes from 157 cycles down to 136 cycles, i.e., about 12.8% faster.
      This translates into about 1.5% speed-up for pedestrian_area 1080p
      at speed 2.
      
      Change-Id: I0f12435857e9425ed7ce12541344dfa16837f4f4
      1eaa3a76
  19. 22 Apr, 2014 1 commit
    • Dmitry Kovalev's avatar
      Renaming "onyx" to "encoder". · ef003078
      Dmitry Kovalev authored
      Actual renames:
        vp9_onyx_if.c -> vp9_encoder.c
        vp9_onyx_int.h -> vp9_encoder.h
      
      Change-Id: I80532a80b118d0060518e6c6a0d640e3f411783c
      ef003078
  20. 17 Apr, 2014 1 commit
    • Jim Bankoski's avatar
      add a context tree structure to encoder · e890c257
      Jim Bankoski authored
      This patch sets up a quad_tree structure (pc_tree) for holding all of
      pick_mode_context data we use at any square block size during encoding
      or picking modes.  That includes contexts for 2 horizontal and 2 vertical
      splits, one none, and pointers to 4 sub pc_tree nodes corresponding
      to split.  It also includes a pointer to the current chosen partitioning.
      
      This replaces code that held an index for every level in the pick
      modes array including:  sb_index, mb_index,
      b_index, ab_index.
      
      These were used as stateful indexes that pointed to the current pick mode
      contexts you had at each level stored in the following arrays
      
      array ab4x4_context[][][],
      sb8x4_context[][][], sb4x8_context[][][], sb8x8_context[][][],
      sb8x16_context[][][], sb16x8_context[][][], mb_context[][], sb32x16[][],
      sb16x32[],  sb32_context[], sb32x64_context[], sb64x32_context[],
      sb64_context
      
      and the partitioning that had been stored in the following:
      b_partitioning, mb_partitioning, sb_partitioning, and sb64_partitioning.
      
      Prior to this patch before doing an encode you had to set the appropriate
      index for your block size ( switch statement),  update it ( up to 3
      lookups for the index array value) and then make your call into a recursive
      function at which point you'd have to call get_context which then
      had to do a switch statement based on the blocksize,  and then up to 3
      lookups based upon the block size to find the context to use.
      
      With the new code the context for the block size is passed around directly
      avoiding the extraneous switch statements and multi dimensional array
      look ups that were listed above.   At any level in the search all of the
      contexts are local to the pc_tree you are working on (in?).
      
      In addition in most places code that used to call sub functions and
      then check if the block size was 4x4 and index was > 0 and return
      now don't preferring instead to call the right none function on the inside.
      
      
      
      Change-Id: I06e39318269d9af2ce37961b3f95e181b57f5ed9
      e890c257
  21. 14 Apr, 2014 1 commit
    • Dmitry Kovalev's avatar
      Removing unused vp9_mcomp_x86.h file. · 2fc3a186
      Dmitry Kovalev authored
      We don't use declarations from this file. The real declarations
      (differently named) are in vp9_rtcd_defs.pl, e.g. vp9_full_search_sad.
      
      Change-Id: I73cbf064305710ba20747233cfdbe67366f069a0
      2fc3a186
  22. 08 Apr, 2014 1 commit
  23. 28 Mar, 2014 1 commit
  24. 27 Mar, 2014 1 commit
  25. 24 Mar, 2014 1 commit
  26. 21 Mar, 2014 2 commits
    • Marco Paniconi's avatar
      Rename the aq_mode files. · 03a9e5ed
      Marco Paniconi authored
      Change-Id: Id76a628495c822e23825b66a7589b4a3279680e2
      03a9e5ed
    • levytamar82's avatar
      AVX2 SAD Optimization: · 0fa8b668
      levytamar82 authored
      2 functions were optimized for avx2 by using full 256 bit register
      In order to handle 32 elements in parallel instead of only 16 in parallel:
      1. vp9_sad32x32x4d
      2. vp9_sad64x64x4d
      
      The function level gain is 66% and the user level gain is ~1%.
      
      Change-Id: I4efbb3bc7d8bc03b64b6c98f5cd5c4a9dd3212cb
      0fa8b668
  27. 18 Mar, 2014 1 commit
  28. 13 Mar, 2014 1 commit
  29. 05 Mar, 2014 1 commit
  30. 27 Feb, 2014 1 commit
    • Dmitry Kovalev's avatar
      Adding vpx_sse_to_psnr() function. · 7d5bffc4
      Dmitry Kovalev authored
      Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions.
      Using vpx_sse_to_psnr() instead in all places.
      
      Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
      7d5bffc4
  31. 14 Feb, 2014 1 commit
    • levytamar82's avatar
      AVX2 SubPixel Variance Optimization · 52dac5d1
      levytamar82 authored
      Optimizing 2 functions to process 32 elements in parallel instead of 16:
      1. vp9_sub_pixel_variance64x64
      2. vp9_sub_pixel_variance32x32
      both of those function were calling vp9_sub_pixel_variance16xh_ssse3
      instead of calling that function, it calls vp9_sub_pixel_variance32xh_avx2
      that is written in avx2 and process 32 elements in parallel.
      This Optimization gave 70% function level gain and 2% user level gain
      
      Change-Id: I4f5cb386b346ff6c878a094e1c3b37e418e50bde
      52dac5d1
  32. 06 Feb, 2014 1 commit
  33. 05 Feb, 2014 2 commits
  34. 04 Feb, 2014 1 commit
  35. 22 Jan, 2014 1 commit
    • Deb Mukherjee's avatar
      Adds a non-normative resize library to vp9 encoder · 3cd37dfe
      Deb Mukherjee authored
      Adds an arbitrary-size resize library for use in scaling of input
      frames in a non-normative manner in the vp9 encoder. The method
      used is as follows:
      Downsampling - Uses a 8 tap filter for factor of 2 decimation upto
      a size just higher than the desired size. Then interpolates pixels
      at a precision of 1/32 pel using a set of 8-tap filters.
      Upsampling - Interpolates pixels at a precision of 1/32 pel using
      a set of 8-tap filters.
      
      There is no assembly optimization yet.
      
      Change-Id: Ib5b81e174fc139da322bb97c8214d52289d60d8a
      3cd37dfe
  36. 21 Jan, 2014 1 commit
  37. 16 Jan, 2014 1 commit
    • Jingning Han's avatar
      Inter-frame non-RD mode decision · 2f52decd
      Jingning Han authored
      This commit setups a test framework for real-time coding. It enables
      a light motion search for non-RD mode decision purpose.
      
      Change-Id: I8bec656331539e963c2b685a70e43e0ae32a6e9d
      2f52decd