1. 29 Apr, 2014 1 commit
  2. 11 Apr, 2014 1 commit
  3. 26 Mar, 2014 1 commit
  4. 08 Mar, 2014 1 commit
    • Deb Mukherjee's avatar
      Support for a fast diamond search · bead2e8f
      Deb Mukherjee authored
      Adds a fast diamond search which is about 5% faster than FAST_HEX
      with only a 0.1% drop in psnr when turned on for both speeds 5 and 7.
      This search is turned on for speed 7.
      
      Change-Id: I497630aa88a5148926086bb3038e7975e5f4eb98
      bead2e8f
  5. 07 Mar, 2014 1 commit
  6. 03 Mar, 2014 1 commit
    • Deb Mukherjee's avatar
      Refactoring motion search libs · b80020d4
      Deb Mukherjee authored
      The core motion estimation fucntions all return sad now consistently.
      The only exception is vp9_full_pixel_diamond(), however the core diamond
      and refining search routines called from vp9_full_pixel_diamond() also
      return SAD. If variance of pred error + mv cost is desired it must be
      calculated explicitly outside these functions. For very fast encoding,
      hopefully this will eliminate some redundant computations.
      
      Also suggests reimplementing FAST_HEX with the vp9_pattern_search
      framework. It is not exactly the same as the existing FAST_HEX, but
      performance is slightly better and speed is very similar. Enables
      removing a lot of duplicate code.
      
      Change-Id: I152736393438c25bdf7e96b37cbb8ce330f4f94a
      b80020d4
  7. 18 Feb, 2014 1 commit
    • Yunqing Wang's avatar
      Use fast HEX search in real time mode · 360c80cf
      Yunqing Wang authored
      In good quality mode motion search, the best matches are normally
      found after searching in a large area. In real time mode, to make
      encoding fast, a center-biased fast HEX search is used, which
      converges quickly most of the time. A 4-point diamond search is
      also carried out as the following refining search, which gives more
      precise results, and maintains good motion search quality.
      
      At speed 5, the borg test on rtc set showed an overall PSNR loss of
      0.936%. The encoding speed gain is 4% - 5%.
      
      Change-Id: I42cd68bb56a09ca1b86293c99d5f7312225ca7ae
      360c80cf
  8. 17 Feb, 2014 1 commit
  9. 13 Feb, 2014 1 commit
  10. 12 Feb, 2014 1 commit
  11. 01 Feb, 2014 1 commit
  12. 24 Jan, 2014 2 commits
  13. 17 Jan, 2014 2 commits
  14. 03 Jan, 2014 1 commit
  15. 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
      6ff4f192
  16. 14 Dec, 2013 1 commit
  17. 13 Dec, 2013 1 commit
  18. 11 Dec, 2013 1 commit
  19. 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
      bbe68fbd
  20. 17 Oct, 2013 1 commit
  21. 25 Sep, 2013 1 commit
  22. 24 Sep, 2013 2 commits
    • Yaowu Xu's avatar
      Limit mv search range for first pass and mbgraph · 35c5d79e
      Yaowu Xu authored
      Both first pass and mbgraph search use block size 16x16 for motion
      estimation. This commit put a limit of motion vector range. The
      effective range allows the entire 16x16 with required subpel
      interpolation input to be completely outside image border, but
      not any further away from image border.
      
      Change-Id: Id70a5ed08be49e70959f064859d72adc7d775d08
      35c5d79e
    • Dmitry Kovalev's avatar
      Moving from int_mv* to MV* (2). · b87696ac
      Dmitry Kovalev authored
      Updating fractional_mv_step_fp and fractional_mv_step_comp_fp function
      types.
      
      Change-Id: I601c4378bc39ac3ffd4e295d9cbd8e1f74829d46
      b87696ac
  23. 20 Sep, 2013 1 commit
    • Dmitry Kovalev's avatar
      Moving from int_mv to MV. · e51e7a0e
      Dmitry Kovalev authored
      Converting vp9_mv_bit_cost, mv_err_cost, and mvsad_err_cost
      functions for now.
      
      Change-Id: I60e3cc20daef773c2adf9a18e30bc85b1c2eb211
      e51e7a0e
  24. 12 Aug, 2013 1 commit
  25. 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.
      
      Results:
      derf: +0.012% psnr
      stdhd: +0.09% psnr
      Speedup of about 2-3%
      
      Change-Id: Iedde4866f5475586dea0f0ba4cb7428fba24eee9
      1ba91a84
  26. 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.
      
      Results:
      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
      71b43b0f
  27. 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
      15b5a6a2
  28. 31 Jul, 2013 1 commit
  29. 26 Jun, 2013 1 commit
    • 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
      e606cac0
  30. 22 May, 2013 1 commit
  31. 16 May, 2013 1 commit
    • Paul Wilkins's avatar
      New inter mode context. · 6ff3eb16
      Paul Wilkins authored
      This patch creates a new inter mode contest that avoids
      a dependence on the reconstructed motion vectors from
      neighboring blocks. This was a change requested by
      a hardware vendor to improve decode performance.
      
      As part of this change I have also made some modifications
      to stats output code (under a flag) to allow accumulation of
      inter mode context flags over multiple clips
      
      Some further changes will be required to accommodate the
      deprecation of the split mv mode over the next few days.
      
      Performance as stands is around -0.25% on derf and
      std-hd but up on the YT and YT-HD sets. With further tuning
      or some adjustment to the context criteria it should be
      possible to make this change broadly neutral.
      
      Change-Id: Ia15cb4470969b9e87332a59c546ae0bd40676f6c
      6ff3eb16
  32. 10 May, 2013 1 commit
    • Yunqing Wang's avatar
      Add joint motion search in comp_inter_inter mode(experiment) · 9f5811c2
      Yunqing Wang authored
      In current code, motion vectors got from single prediction mode are used
      in compound prediction mode directly. These motion vectors may not give
      accurate prediction since they are searched independently. In this patch,
      we took Pascal's suggestion, and did joint motion search in compound
      prediction mode to find better motion vectors in this situation.
      Test results:
      Overall PSNR: 0.570%(derf), 0.918%(stdhd);
      SSIM: 0.572%(derf), 1.009%(stdhd);
      
      The encoder is a little slower. This can be improved since some c
      code is used in motion search.
      
      Change-Id: Ib30c9240f6c56c9b070867b4ca89412a76d9f3c6
      9f5811c2
  33. 26 Apr, 2013 2 commits
    • John Koleszar's avatar
      Remove BLOCKD structure · bb41ab4a
      John Koleszar authored
      All members can be referenced from their per-plane counterparts, and
      removes assumptions about 24 blocks per macroblock.
      
      Change-Id: I7ff2fa72d22c29163eb558981c8193765a8113d9
      bb41ab4a
    • Scott LaVarnway's avatar
      Removed bmi from blockd · 57f180b3
      Scott LaVarnway authored
      This originally was "Removed update_blockd_bmi()".  Now,
      this patch removed bmi from blockd and uses the bmi found
      in mode_info_context.  Eliminates unnecessary bmi copies between
      blockd and mode_info_context.
      
      Change-Id: I287a4972974bb363f49e528daa9b2a2293f4bc76
      57f180b3
  34. 25 Apr, 2013 1 commit
    • John Koleszar's avatar
      Remove BLOCK structure · 4bd0f4f6
      John Koleszar authored
      All members can be referenced from their per-plane counterparts, and
      removes assumptions about 24 blocks per macroblock.
      
      Change-Id: I593fb0715e74cd84b48facd1c9b18c3ae1185d4b
      4bd0f4f6
  35. 13 Mar, 2013 1 commit
    • Jingning Han's avatar
      Support +/-2048 motion vector coding · 76c12ab9
      Jingning Han authored
      Enable entropy coding of motion vectors up to +/-2048. Also
      extend the motion search range accordingly.
      
      Change-Id: Iac2bb015e8934521cef83a19edbe967d9f097436
      76c12ab9
  36. 08 Mar, 2013 1 commit
    • Jingning Han's avatar
      Extend diff MV limit from +/-256 to +/-1024 · 2a5278bd
      Jingning Han authored
      Increase the motion search range by 4x. Change MV_CLASS tree of the
      entropy coding to allow two additional mv classes to cover the
      extended motion vector limit. The codec determines the effective
      motion search range conditioned on the actual frame dimension.
      
      It provides coding gains:
      
      stdhd 0.39%
      yt    0.56%
      hd    0.47%
      
      Major coding performance gains are packed in several sequences with
      intense motion activities, e.g., ped_1080p gains 7% at high bit-rates,
      and on average 3%.
      
      TODO: Need to further tune the rate control and motion search units.
      
      Change-Id: Ib842540a6796fbee5a797809433ef6a477c6d78d
      2a5278bd