1. 15 Aug, 2013 1 commit
  2. 13 Aug, 2013 1 commit
  3. 12 Aug, 2013 3 commits
  4. 10 Aug, 2013 1 commit
  5. 09 Aug, 2013 2 commits
  6. 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
  7. 07 Aug, 2013 2 commits
    • Dmitry Kovalev's avatar
      Adding ss_size_lookup table. · 8db2675b
      Dmitry Kovalev authored
      Removing the old one bsize_from_dim_lookup. Now we have a way to determine
      block size for plane using its subsampling values (ss_size_lookup). And
      then we can find the number of pixels in the block (num_pels_log2_lookup).
      
      Change-Id: I6fc981da2ae093de81741d3d78eaefed11015db9
      8db2675b
    • 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
  8. 06 Aug, 2013 2 commits
    • 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
    • Dmitry Kovalev's avatar
      Inlining vp9_get_pred_probs_switchable_interp function. · 0c800656
      Dmitry Kovalev authored
      There was no benefit having this function. For example, inside
      read_switchable_filter_type switchable filter context was calculated twice.
      
      Change-Id: I79cd5bf95cbc0f6d8bf91a2e32289e01b18dcff1
      0c800656
  9. 05 Aug, 2013 5 commits
    • Dmitry Kovalev's avatar
      Finally removing all old block size constants. · b9c7d04e
      Dmitry Kovalev authored
      Change-Id: I3aae21e88b876d53ecc955260479980ffe04ad8d
      b9c7d04e
    • Deb Mukherjee's avatar
      Add variance based mode/skipping · 8b3faccb
      Deb Mukherjee authored
      Adds a speed feature to skip all intra modes other than
      DC_PRED if the source variance is small. This feature is
      made part of speed 1 and up.
      
      Results on derf300: psnr -0.07%, speedup about 1-2%
      
      Also uses the source variance to fine-tune the early
      termination criteria when FLAG_EARLY_TERMINATE is on.
      This feature is made part of speed 2 and up.
      
      Results on derf300: psnr -0.52%, speedup about 5-7%
      
      Change-Id: I59e38aa836557cfa5405ae706fc64815cbfe4232
      8b3faccb
    • Dmitry Kovalev's avatar
      Changing the order switchable filter enum constants. · 3f611555
      Dmitry Kovalev authored
      This changeset allows to remove vp9_switchable_interp and
      vp9_switchable_interp_map arrays and make code much clear. Actually we
      still have to use these mapping but only inside read_interp_filter_type and
      write_interp_filter_type functions.
      
      Change-Id: I4026c6f8c4acefba6c81421b7bacbaa52cc45f50
      3f611555
    • Jim Bankoski's avatar
      cleanups after bw bh code · 5d2cb7ea
      Jim Bankoski authored
      Cons bw/bh parms that should have been const. Additional formatting.
      
      Change-Id: Icd36a5c9dc17dadd7284315ac0d6fef1a565ca16
      5d2cb7ea
    • Dmitry Kovalev's avatar
      Replacing long block size enum values with shorter ones (2). · d007446b
      Dmitry Kovalev authored
      Change-Id: I428c4d42212b757112e3acfe5b81314cfbb5fd6b
      d007446b
  10. 03 Aug, 2013 1 commit
  11. 02 Aug, 2013 2 commits
  12. 01 Aug, 2013 5 commits
  13. 31 Jul, 2013 2 commits
  14. 30 Jul, 2013 1 commit
  15. 29 Jul, 2013 2 commits
  16. 27 Jul, 2013 1 commit
    • Ronald S. Bultje's avatar
      Inverse dimension order in token_cost array. · 118ccdcd
      Ronald S. Bultje authored
      This allows us to increment the position at the band-level only as
      we go from one band to the next; more importantly, that allows us to
      use an add instead of multiply instruction, and omit the instruction
      altogether if the band doesn't change from one coef to the next, thus
      being slightly faster (probably more noticeable on systems where a
      multiply is expensive, like arm).
      
      Change-Id: I4343fe35b9f9a47fa00b217bdcbf5f91ff96c381
      118ccdcd
  17. 26 Jul, 2013 1 commit
    • Yunqing Wang's avatar
      Modify static threshold calculation · 52256cdb
      Yunqing Wang authored
      Used 3 * standard_deviation in internal threshold calculation
      instead of fit curve. This actually approached the algorithm
      better.
      For comparison, similar tests were done:
      The overall psnr loss is less than before.
      1. derf set:
      when static-thresh = 1, psnr loss is 0.329%;
      when static-thresh = 500, psnr loss is 0.970%;
      2. stdhd set:
      when static-thresh = 1, psnr loss is 0.922%;
      when static-thresh = 500, psnr loss is 1.307%;
      
      Similar speedup is achieved. For example,
      clip            bitrate  static-thresh psnr    time
      akiyo(cif)       500        0          48.952  5.077s(50f)
      akiyo            500        500        48.866  4.169s(50f)
      
      parkjoy(1080p)   4000       0          30.388  78.20s(30f)
      parkjoy          4000       500        30.367  70.85s(30f)
      
      sunflower(1080p) 4000       0          44.402  74.55s(30f)
      sunflower        4000       500        44.414  68.69s(30f)
      
      Change-Id: Ic78833642ce1911dbbd1cb6c899a2d7e2dfcc1f3
      52256cdb
  18. 25 Jul, 2013 3 commits
    • Yunqing Wang's avatar
      Add encoding option --static-thresh · d36852b7
      Yunqing Wang authored
      This option exists in VP8, and it was rewritten in VP9 to support
      skipping on different partition levels. After prediction is done,
      we can check if the residuals in the partition block will be all
      quantized to 0. If this is true, the skip flag is set, and only
      prediction data are needed in reconstruction. Based on DCT's energy
      conservation property, the skipping check can be estimated in
      spatial domain.
      
      The prediction error is calculated and compared to a threshold.
      The threshold is determined by the dequant values, and also
      adjusted by partition sizes. To be precise, the DC and AC parts
      for Y, U, and V planes are checked to decide skipping or not.
      
      Test showed that
      1. derf set:
      when static-thresh = 1, psnr loss is 0.666%;
      when static-thresh = 500, psnr loss is 1.162%;
      2. stdhd set:
      when static-thresh = 1, psnr loss is 1.249%;
      when static-thresh = 500, psnr loss is 1.668%;
      
      For different clips, encoding speedup range is between several
      percentage and 20+% when static-thresh <= 500. For example,
      clip            bitrate  static-thresh psnr    time
      akiyo(cif)       500        0          48.923  5.635s(50f)
      akiyo            500        500        48.863  4.402s(50f)
      
      parkjoy(1080p)   4000       0          30.380  77.54s(30f)
      parkjoy          4000       500        30.384  69.59s(30f)
      
      sunflower(1080p) 4000       0          44.461  85.2s(30f)
      sunflower        4000       500        44.418  78.1s(30f)
      
      Higher static-thresh values give larger speedup with larger
      quality loss.
      
      Change-Id: I857031ceb466ff314ab580ac5ec5d18542203c53
      d36852b7
    • Dmitry Kovalev's avatar
      General cleanups. · 7131cb0e
      Dmitry Kovalev authored
      Removing unused constants, macros, and function declarations. Using
      ROUND_POWER_OF_TWO macro, vp9_zero, vp9_copy where possible. Moving
      #include from *.h to *.c. Merging for loops for motion vectors.
      
      Change-Id: Ic3bf841764a2bb177128bb3a6d7aa8f68229cd13
      7131cb0e
    • Adrian Grange's avatar
      Simplify handling of sub-partition motion vectors · be700e14
      Adrian Grange authored
      Simplified the code that extracts and uses the motion
      vectors for the 4 sub-partitions in rd_pick_partition.
      
      Change-Id: Iaf698ef7ee3aef9edd59015e1ae065dd359b17d9
      be700e14
  19. 24 Jul, 2013 4 commits