1. 31 Jul, 2015 1 commit
    • Yunqing Wang's avatar
      Remove tx cache and speed up tx size selection · 3b2e73b9
      Yunqing Wang authored
      1. The RD scores obtained during the tx size selection were stored in the
      tx cache, and used to help make the tx decision for the following frames.
      This wasn't used anymore in VP9 encoder. Recovered the related decision
      making code from 1.5+ years ago, and borg tests didn't show any quality
      gain. This patch removed it to lower the complexity.
      
      2. An optimization was done after the above refactoring. If the tx_mode
      is not TX_MODE_SELECT, we only need to test the chosen tx size instead
      of all posible tx sizes. This gave a 1.5% average speed gain at speed 2,
      and a 1% average speed gain at speed 3.
      
      Change-Id: Id8cd650e066a8cef33829d8c15388a8138adc78c
      3b2e73b9
  2. 28 Jul, 2015 1 commit
  3. 27 Jul, 2015 1 commit
    • Yunqing Wang's avatar
      Remove tx_select_threshes · b2446fb6
      Yunqing Wang authored
      Removed unused tx_select_threshes and tx_select_diff.
      
      Change-Id: I5e9e7ad170056efe14b5f071e94d0c5a36e4a34c
      b2446fb6
  4. 09 Jul, 2015 1 commit
  5. 08 Jul, 2015 2 commits
    • paulwilkins's avatar
      Changes to use of rectangular partitions. · 8dd466ed
      paulwilkins authored
      Changes to allow more use of rectangular partitions at
      speeds 1 and 2 for content classed by the first pass as
      animation and for blocks near the active image edge.
      
      This has quite a big impact in quality for the animated
      test sequence but also hurts encode speed for speed 2.
      
      For other content types the impact on both speed and
      quality is small.
      
      Added some plumbing for detection of internal vertical
      image edges.
      
      Change-Id: I3fc48de2349f8cb87946caaf0b06dbb0ea261a9a
      8dd466ed
    • paulwilkins's avatar
      Change speed and rd features for formatting bars. · a126b6ce
      paulwilkins authored
      Change speed features / behavior for split mode when there
      is an internal active edge (e.g. formatting bars).
      
      Remove some threshold constraints in rd code near the active
      edge of the image.
      
      Add some plumbing for left and right active edge detection.
      
      Patch set 5. Limit rd pass through for sub 8x8 to internal active edges.
      This takes away any speed penalty for most clips but keeps the enhanced
      edge coding for the more critical case of internal image edges
      
      Change-Id: If644e4762874de4fe9cbb0a66211953fa74c13a5
      a126b6ce
  6. 07 Jul, 2015 1 commit
    • Marco's avatar
      Update to speed 5 non-rd mode partition search. · 478fbc8f
      Marco authored
      If the pre-selected partition size (from variance partition) is
      32x32, also apply nonrd partition search for 32x32 and 16x16 size.
      
      Overall small positive gain in metrics, average ~1%.
      Some visual improvement, for lower resolutions.
      
      Change-Id: I69cb425bda94f7d13d34c451ab30e9276335a30e
      478fbc8f
  7. 02 Jul, 2015 1 commit
    • paulwilkins's avatar
      Alter partition search at image edge. · 99f8bd72
      paulwilkins authored
      Added code to reduce the minimum partition size searched
      for super blocks at or straddling the edge of the image.
      
      If the first pass has detected formatting bars the "active" edge
      may not be the real edge.
      
      Change-Id: I9c4bdd1477e60f162a75fac95ba6be7c3521e05c
      99f8bd72
  8. 29 Jun, 2015 1 commit
  9. 22 Jun, 2015 2 commits
    • Marco's avatar
      Fixes for key frame coding at speed 5. · fb2a89b1
      Marco authored
      Keep the same transform cutoff and partition selection
      for speed 5 as in speeds >=6 (non-rd speed settings).
      
      Existing setting for key frame at speed 5 allowed transform size
      up to 32x32 on key frames, and did not allow for 4x4 block partition size.
      This created more visual artifacts on first few frames.
      
      avgPSNR/overallPSNR/SSIM gains of 0.2/0.7/0.8 for rtc_derf(low-res) set,
      and 0/0.7/1.1 gains for rtc set.
      
      Change-Id: I8c139ec6c9bb74e14b4ffbad5f12e94f18a59c0b
      fb2a89b1
    • Scott LaVarnway's avatar
      Remove tile param · 86f4a3d8
      Scott LaVarnway authored
      and added to MACROBLOCKD.
      
      Change-Id: I0e60aaa9f84bcc9f2376d71bd934f251baee38db
      86f4a3d8
  10. 19 Jun, 2015 1 commit
    • Marco's avatar
      Reduce max_partition_size for low resolutions at speed 5. · debe4e92
      Marco authored
      For speed 5 real-time mode, the selection of the partition size for
      superblocks on the segment (aq-mode=3) uses the non-rd recursive
      pick partition search, and can sometimes select 64x64.
      
      For low resolutions, visually better to limit this to 32x32.
      
      Change-Id: I69657a7ed8899f8b3cf8c9c318a2509c5c72c565
      debe4e92
  11. 16 Jun, 2015 2 commits
  12. 13 Jun, 2015 2 commits
  13. 11 Jun, 2015 2 commits
  14. 04 Jun, 2015 2 commits
    • Scott LaVarnway's avatar
      Reducing size of MODE_INFO struct · baaaa575
      Scott LaVarnway authored
      Reduced size from 124 bytes to 104 bytes.  For decode only builds,
      it is reduced to 68 bytes.
      
      Change-Id: If9e6b92285459425fa086ab5a743d0a598a69de3
      baaaa575
    • Marco's avatar
      Remove ABI check for 1 pass CBR SVC. · a8c5ab2c
      Marco authored
      Remove the ABI check for the controls needed for SVC 1 pass CBR mode.
      Bump up the ABI version.
      
      Change-Id: I35b79ee010e14af83c6d1e801d574deaaa2fc7eb
      a8c5ab2c
  15. 02 Jun, 2015 1 commit
    • Marco's avatar
      Vidyo patch: Rate control for SVC, 1 pass CBR mode. · c139b81a
      Marco authored
      -Make Rate control work for SVC 1 pass CBR mode.
      -Added temporal layering mode.
      -Fixed bug in non-rd variance partition.
      -Modified/updated the sample encoders (vp9_spatial_svc_encoder, vpx_temporal_svc_encoder).
      -Added datarate unittest(s) for 1 pass CBR SVC.
      
      Change-Id: Ie94b1b68a56ea1267b5087c625e5df04def2ee48
      c139b81a
  16. 27 May, 2015 2 commits
    • Marco's avatar
      Non-rd variance partition: Adjust thresholds for 1080p. · a49fff63
      Marco authored
      Increase the 32x32 split threshold, to allow for more 32x32
      at expense of 16x16. Visually looks somewhat better.
      
      Change-Id: Ia1439c3a0dc2d7933468b88bd59266fcd9f03505
      a49fff63
    • Marco's avatar
      Refactor set_vbp_thresholds. · f76d42a9
      Marco authored
      Break out the setting of the block variance split thresholds,
      since they are locally modified, e.g., based on local/segment qp.
      
      No change in performance.
      
      Change-Id: I0a3238e6dab05140657539fc4bd27ac5ff7a554e
      f76d42a9
  17. 26 May, 2015 1 commit
  18. 22 May, 2015 1 commit
  19. 15 May, 2015 1 commit
  20. 13 May, 2015 1 commit
    • Johann's avatar
      Relocate memory operations for common code · 1d7ccd53
      Johann authored
      With the sad functions, and hopefully the variance functions soon,
      moving to the vpx_dsp location, place the defines used in the
      reference C code in a common location.
      
      Change-Id: I4c8ce7778eb38a0a3ee674d2f1c488eda01cfeca
      1d7ccd53
  21. 07 May, 2015 1 commit
    • James Zern's avatar
      replace DECLARE_ALIGNED_ARRAY w/DECLARE_ALIGNED · fd3658b0
      James Zern authored
      this macro was used inconsistently and only differs in behavior from
      DECLARE_ALIGNED when an alignment attribute is unavailable. this macro
      is used with calls to assembly, while generic c-code doesn't rely on it,
      so in a c-only build without an alignment attribute the code will
      function as expected.
      
      Change-Id: Ie9d06d4028c0de17c63b3a27e6c1b0491cc4ea79
      fd3658b0
  22. 01 May, 2015 2 commits
    • paulwilkins's avatar
      Image size restriction to rd auto partition search. · 4a7dcf8e
      paulwilkins authored
      Impose a limit on the rd auto partition search based on
      the image format. Smaller formats require that the search
      includes includes a smaller minimum block size.
      
      This change is intended to mitigate the visual impact of
      ringing in some problem clips, for smaller image formats.
      
      Change-Id: Ie039e5f599ee079bbef5d272f3e40e2e27d8f97b
      4a7dcf8e
    • paulwilkins's avatar
      Remove CONSTRAIN_NEIGHBORING_MIN_MAX. · 287b0c6d
      paulwilkins authored
      Remove one of the auto partition size cases.
      This case can behaves badly in some types of animated content
      and was only used for the rd encode path. A subsequent patch
      will add additional checks to help further improve visual quality.
      
      Change-Id: I0ebd8da3d45ab8501afa45d7959ced8c2d60ee4e
      287b0c6d
  23. 30 Apr, 2015 1 commit
    • Yunqing Wang's avatar
      Adjust the vbp early termination threshold slightly · a257e469
      Yunqing Wang authored
      Calculated cpi->vbp_threshold_sad from this frame's dequant value.
      The encoding quality and speed didn't change much. Borg test
      result: PSNR: -0.002%, SSIM: -0.003%.
      
      Change-Id: I97c9826986f39582f29910d637d08a69c90afdee
      a257e469
  24. 29 Apr, 2015 2 commits
    • James Zern's avatar
      vpx_mem: remove vpx_memset · f58011ad
      James Zern authored
      vestigial. replace instances with memset() which they already were being
      defined to.
      
      Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
      f58011ad
    • James Zern's avatar
      vpx_mem: remove vpx_memcpy · f274c219
      James Zern authored
      vestigial. replace instances with memcpy() which they already were being
      defined to.
      
      Change-Id: Icfd1b0bc5d95b70efab91b9ae777ace1e81d2d7c
      f274c219
  25. 24 Apr, 2015 1 commit
    • Yaowu Xu's avatar
      Add validation of UV partition size · b3e411e4
      Yaowu Xu authored
      For color sampling format other than 420, valid partion size in Y may
      not work for UV plane. This commit adds validation of UV partition
      size before select the partition choice.
      
      This fixes a crash for real time encoding of 422 input.
      
      Change-Id: I1fe3282accfd58625e8b5e6a4c8d2c84199751b6
      b3e411e4
  26. 21 Apr, 2015 1 commit
    • Scott LaVarnway's avatar
      Revert "Remove mi_grid_* structures." · 8b17f7f4
      Scott LaVarnway authored
      (see I3a05cf1610679fed26e0b2eadd315a9ae91afdd6)
      
      For the test clip used, the decoder performance improved by ~2%.
      This is also an intermediate step towards adding back the
      mode_info streams.
      
      Change-Id: Idddc4a3f46e4180fbebddc156c4bbf177d5c2e0d
      8b17f7f4
  27. 17 Apr, 2015 1 commit
  28. 15 Apr, 2015 1 commit
    • Yunqing Wang's avatar
      Fix Tsan errors · 63c5bf2b
      Yunqing Wang authored
      This patch fixed 2 reported Tsan errors while running VP9 real-time
      encoder.
      
      Change-Id: Ib0278fe802852862c3ce87c4a500e544d7089f67
      63c5bf2b
  29. 14 Apr, 2015 1 commit
  30. 13 Apr, 2015 1 commit
    • Marco's avatar
      Force_split on 16x16 blocks in variance partition. · eb8c6675
      Marco authored
      Force split on 16x16 block (to 8x8) based on the minmax over the 8x8 sub-blocks.
      
      Also increase variance threshold for 32x32, and add exit condiiton in choose_partition
      (with very safe threshold) based on sad used to select reference frame.
      
      Some visual improvement near moving boundaries.
      Average gain in psnr/ssim: ~0.6%, some clips go up ~1 or 2%.
      Encoding time increase (due to more 8x8 blocks) from ~1-4%, depending on clip.
      
      Change-Id: I4759bb181251ac41517cd45e326ce2997dadb577
      eb8c6675
  31. 09 Apr, 2015 1 commit