1. 11 Dec, 2013 1 commit
  2. 10 Dec, 2013 1 commit
  3. 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
      44627a96
    • 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
      b295092b
  4. 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
  5. 17 Oct, 2013 1 commit
  6. 05 Oct, 2013 1 commit
  7. 25 Sep, 2013 1 commit
  8. 24 Sep, 2013 1 commit
  9. 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
      838eae39
  10. 20 Sep, 2013 2 commits
  11. 19 Sep, 2013 1 commit
  12. 18 Sep, 2013 1 commit
  13. 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
      friendly.
      
      Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
      ac6093d1
  14. 09 Sep, 2013 1 commit
  15. 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
      dae17734
  16. 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
      f70330a9
  17. 12 Aug, 2013 1 commit
  18. 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
      6a8ec3ea
  19. 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
  20. 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
  21. 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
  22. 02 Aug, 2013 1 commit
  23. 01 Aug, 2013 1 commit
  24. 31 Jul, 2013 1 commit
  25. 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
      a1e2d50b
  26. 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
      9f3ab834
    • 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
  27. 25 Jun, 2013 1 commit
    • Ronald S. Bultje's avatar
      Add averaging-SAD functions for 8-point comp-inter motion search. · c24d9223
      Ronald S. Bultje authored
      Makes first 50 frames of bus @ 1500kbps encode from 3min22.7 to 3min18.2,
      i.e. 2.3% faster. In addition, use the sub_pixel_avg functions to calc
      the variance of the averaging predictor. This is slightly suboptimal
      because the function is subpixel-position-aware, but it will (at least
      for the SSE2 version) not actually use a bilinear filter for a full-pixel
      position, thus leading to approximately the same performance compared to
      if we implemented an actual average-aware full-pixel variance function.
      That gains another 0.3 seconds (i.e. encode time goes to 3min17.4), thus
      leading to a total gain of 2.7%.
      
      Change-Id: I3f059d2b04243921868cfed2568d4fa65d7b5acd
      c24d9223
  28. 24 Jun, 2013 1 commit
  29. 19 Jun, 2013 1 commit
  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 2 commits
    • John Koleszar's avatar
      Remove predictor pointers from BLOCKD · a99e1aa8
      John Koleszar authored
      Access these members from MACROBLOCKD instead.
      
      Change-Id: I2574622e577bb9feede47f6b7ccbb11f3e928ca8
      a99e1aa8
    • 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. 18 Apr, 2013 1 commit