1. 21 Jan, 2014 1 commit
    • Jingning Han's avatar
      Enforce effective motion vector search range · 20cf22a1
      Jingning Han authored
      This commit explicitly enforces the effective motion vector range
      in the motion search stage. The range needs to be the intersection
      of UMV border, effective absolute motion vector value range, and
      the target search area.
      Change-Id: I1cf7c563e02b1086040dad6c1f4f6be1538635a6
  2. 17 Jan, 2014 2 commits
  3. 13 Jan, 2014 1 commit
  4. 04 Jan, 2014 1 commit
  5. 03 Jan, 2014 1 commit
  6. 20 Dec, 2013 1 commit
  7. 19 Dec, 2013 1 commit
    • Yunqing Wang's avatar
      Remove a unused sub-pixel search · 6ff4f192
      Yunqing Wang authored
      The original iterative search was replaced by subpel_tree search,
      and was not used anymore.
      Change-Id: I998b38e1cb0ee359a08b2410d0766dbf183ab071
  8. 14 Dec, 2013 1 commit
  9. 13 Dec, 2013 1 commit
  10. 11 Dec, 2013 2 commits
  11. 10 Dec, 2013 1 commit
  12. 06 Dec, 2013 2 commits
    • Jingning Han's avatar
      Clean-ups in diamond_search_sad · 44627a96
      Jingning Han authored
      Use the pre-fetched stride value.
      Change-Id: I8d4aaedab7a83a4870be51c110da27e55ca3bc85
    • Jingning Han's avatar
      Full range motion search for regular block sizes · b295092b
      Jingning Han authored
      Add a full range motion search for regular block sizes. This runs
      exhaustive search within the given reference area. This commit further
      optimizes the search process by combining 4 points test into one
      pipeline, which gives 30% speed-up as compared to run each individual
      point at a time.
      This full range search serves as a best possible motion search reference.
      When replacing the diamond search with full range search, the speed 0
      runtime of bus CIF at 2000 kbps goes from 153872ms to 623051ms. The
      compression performance compared to speed 0 setting gains 0.585% for
      derf set.
      Change-Id: Ieef1225216b0b86b4ac4872fa7fb9e18bf2eabb3
  13. 18 Nov, 2013 1 commit
    • Jingning Han's avatar
      Constrain encoder motion search range · bbe68fbd
      Jingning Han authored
      Explicitly constrain the upper limit of motion search range (in the
      unit of full pixel) to be [-1023, +1023]. It is intended to control
      the effective motion search range for 4K sequences.
      Change-Id: I645539c70885eec0f155781f439d97d333336e88
  14. 17 Oct, 2013 1 commit
  15. 05 Oct, 2013 1 commit
  16. 25 Sep, 2013 1 commit
  17. 24 Sep, 2013 1 commit
  18. 23 Sep, 2013 1 commit
    • Yaowu Xu's avatar
      Correct 3 step search site initialziation · 838eae39
      Yaowu Xu authored
      39c7b01d accidently reverted the row/col initialization, which broke
      mv clamps, which is dependent on the sites for valid motion vector
      range. This commit fixed the issue.
      Change-Id: Ibcce0226e0360b1ef483fe760b2e33f1af4bf494
  19. 20 Sep, 2013 2 commits
  20. 19 Sep, 2013 1 commit
  21. 18 Sep, 2013 1 commit
  22. 11 Sep, 2013 1 commit
    • Scott LaVarnway's avatar
      New mode_info_context storage -- undo revert · ac6093d1
      Scott LaVarnway authored
      mode_info_context was stored as a grid of MODE_INFO structs.
      The grid now constists of pointers to MODE_INFO structs.  The
      MODE_INFO structs are now stored as a stream (decoder only),
      eliminating unnecessary copies and is a little more cache
      Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
  23. 09 Sep, 2013 1 commit
  24. 06 Sep, 2013 1 commit
    • Scott LaVarnway's avatar
      New mode_info_context storage · dae17734
      Scott LaVarnway authored
      mode_info_context was stored as a grid of MODE_INFO structs.
      The grid now constists of a pointer to a MODE_INFO struct and
      a "in the image" flag.  The MODE_INFO structs are now stored
      as a stream, eliminating unnecessary copies and is a little
      more cache friendly.
      For the test clips used, the decoder performance improved
      by ~4.3% (1080p) and ~9.7% (720p).
      Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p)
      and 5.9% (720p).
      Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
  25. 20 Aug, 2013 1 commit
    • Yaowu Xu's avatar
      fix a bug when null function pointer is used. · f70330a9
      Yaowu Xu authored
      For certain partition size, the function poniter may not be intialized
      at all. The patch prevent the call if the pointer is not set.
      Change-Id: I78b8c3992b639e8799a16b3c74f0973d07b8b9ac
  26. 12 Aug, 2013 1 commit
  27. 09 Aug, 2013 1 commit
    • Dmitry Kovalev's avatar
      General code cleanup. · 6a8ec3ea
      Dmitry Kovalev authored
      Removing redundant parenthesis and curly braces. Combining declarations
      with initializations. Adding useful intermediate variables instead of
      recalculating expressions every time.
      Change-Id: I00106f404afd60bfc189905b0fded881684f941a
  28. 08 Aug, 2013 1 commit
    • Deb Mukherjee's avatar
      Adds a new subpel motion function · 1ba91a84
      Deb Mukherjee authored
      Adds a new subpel motion estimation function that uses a 2-level
      tree-structured decision tree to eliminate redundant computations.
      It searches fewer points than iterative search (which can search
      the same point multiple times) but has the same quality roughly.
      This is made the default setting at speeds 0 and 1, while at
      speed 2 and above only a 1-level search is used.
      Also includes various cleanups for consistency and redundancy removal.
      derf: +0.012% psnr
      stdhd: +0.09% psnr
      Speedup of about 2-3%
      Change-Id: Iedde4866f5475586dea0f0ba4cb7428fba24eee9
  29. 07 Aug, 2013 1 commit
    • Deb Mukherjee's avatar
      Clean ups of the subpel search functions · 71b43b0f
      Deb Mukherjee authored
      Removes some unused code and speed features, and organizes the
      interfaces for fractional mv step functions for use in new speed
      features to come.
      In the process a new speed feature - number of iterations per
      step during the subpel search - is exposed.
      No change when this parameter is set as the original value of 3.
      subpel_iters_per_step = 3: baseline
      subpel_iters_per_step = 2: psnr -0.067%, 1% speedup
      subpel_iters_per_step = 1: psnr -0.331%, 3-4% speedup
      Change-Id: I2eba8a21f6461be8caf56af04a5337257a5693a8
  30. 06 Aug, 2013 1 commit
    • Deb Mukherjee's avatar
      Flexible support for various pattern searches · 15b5a6a2
      Deb Mukherjee authored
      Adds a few pattern searches to achieve various tradeoffs
      between motion estimation complexity and performance.
      The search framework is unified across these searches so that a
      common pattern search function is used for all. Besides it will
      be easier to experiment with various patterns or combinations
      thereof at different scales in the future.
      The new pattern search is multi-scale and is capable of using
      different patterns at different scales.
      The new hex search uses 8 points at the smallest scale
      and 6 points at other scales.
      Two other pattern searches - big-diamond and square are
      also added. Big diamond uses 4 points at the smallest scale and
      8 points in diamond shape at the larger scales.
      Square is very similar conceptually to the default n-step search
      but is somewhat faster since it keeps only one survivor across
      all scales.
      Psnr/speed-up results on derf300:
      hex: -1.6% psnr%, 6-8% speed-up
      big-diamond: -0.96% psnr, 4-5% speedup
      square: -0.93% psnr, 4-5% speedup
      Change-Id: I02a7ef5193f762601e0994e2c99399a3535a43d2
  31. 02 Aug, 2013 1 commit
  32. 01 Aug, 2013 1 commit
  33. 31 Jul, 2013 1 commit
  34. 22 Jul, 2013 1 commit
    • Deb Mukherjee's avatar
      Diamond search change to accelerate movement · a1e2d50b
      Deb Mukherjee authored
      Optional change in diamond search to continue in the best move
      direction until that move turns worse.
      This is still WIP since the exact way the new method is to be used is
      under investigation. One option is to make it an option in diamond
      search and use it only when motion is large.
      Overall slightly positive on derfraw300 +0.02%, stdhdraw +0.13%,
      but works a lot better for high motion sequences (ex. football : +1%).
      Change-Id: If88e01a6021daa0cda934680cdc70be1ee04f798
  35. 26 Jun, 2013 2 commits
    • Paul Wilkins's avatar
      Auto adapt step size feature. · 9f3ab834
      Paul Wilkins authored
      Also tweaks to other features and experiments with
      what is on and off at different speed settings.
      Change-Id: I3e1d0be0d195216bf17c2ac5df67f34ce0b306b2
    • Paul Wilkins's avatar
      Change meaning of cpi->sf.first_step and rename. · e606cac0
      Paul Wilkins authored
      Renamed cpi->sf.first_step to cpi->sf.reduce_first_step_size
      and changed its meaning such that it is a delta applied to
      reduce the default first step size (>> x) in the motion search
      rather than an absolute value.
      The default first step size is already changed according to the image
      dimensions (smaller for smaller images). cpi->sf.reduce_first_step_size
      now applies a further correction from the default.
      Change-Id: Ia94e08bc24c67b604831f980909af7e982fcd16d