1. 13 Nov, 2017 1 commit
    • paulwilkins's avatar
      New content type to improve grain retention. · a73cee28
      paulwilkins authored
      For new VP9 only content type adjust  the rate distortion and ARF
      filter based on the relative spatial variance of the source and
      reconstruction.
      
      In regards to the RD loop the method favors modes where the
      reconstruction variance is similar to the source variance. However it
      is currently only applied to regions where the source variance is quite
      low.
      
      For very low variance blocks it applies a further bias against intra
      coding and large prediction block sizes (the later in particular limit
      the usefulness of the loop filter).
      
      The final part of this change is to lower the strength of the ARF
      filter for blocks where the source has very low spatial variance, to
      encourage some low amplitude texture or noise to pass through
      the filter.
      
      This change improves the retention of film grain and fine noise /
      texture in spatially flat regions, but as expected causes a significant
      drop in PSNR on many clips. This is to be expected because similar
      but misaligned noise or texture will give a lower PSNR than a flat
      noise free reconstruction. However, it is worth noting that most clips
      show a strong gain in FAST SSIM.
      
      The features are enabled on the vpxenc command line by setting
      --tune-content=film.
      
      VPX_ENCODER_ABI_VERSION bumped for this change and cvbr.
      
      Change-Id: I26a4e4edfa3dc5cacead82fa701fe7a9118ccd0a
      a73cee28
  2. 10 May, 2017 1 commit
    • Marco's avatar
      vp9: SVC: Add option to set downsampling filter type. · 4e23998f
      Marco authored
      Add option in SVC to set the filter type and phase for
      the frame level downsampling filters.
      
      For 3 spatial layers: set downsampling filter type to bilinear
      and set phase to 8, for lowest spatial layer.
      
      Change-Id: Id81f4b1ba93db19c1cd37b6a46d1281a2c61bc43
      4e23998f
  3. 28 Apr, 2017 1 commit
    • Johann's avatar
      Use uint32_t for accumulator · 657f3e9f
      Johann authored
      Be specific about the data type size.
      
      Use convenience macro vp9_zero_array.
      
      Change-Id: I5fadf7dbd408befb73820d85db0be4832e8cfcbd
      657f3e9f
  4. 27 Apr, 2017 1 commit
    • Johann's avatar
      vp9 temporal filter: sse4 implementation · 6dfeea65
      Johann authored
      Approximates division using multiply and shift.
      
      Speeds up both sizes (8x8 and 16x16) by 30 times.
      
      Fix the call sites to use the RTCD function.
      
      Delete sse2 and mips implementation. They were based on a previous
      implementation of the filter. It was changed in Dec 2015:
      ece4fd5d
      
      BUG=webm:1378
      
      Change-Id: I0818e767a802966520b5c6e7999584ad13159276
      6dfeea65
  5. 25 Apr, 2017 1 commit
  6. 18 Apr, 2017 1 commit
    • Marco's avatar
      vp9: Add phase to get averaging filter for 1:2 downsampling. · 348bdc01
      Marco authored
      The scaling filter with zero shift will give sub-sampling for
      2x downsampling. Allow for a phase shift to get an averaging filter.
      
      Usage is for source scaling in 1 pass SVC mode for 1:2 downscale.
      Reduces aliasing in downsampled image.
      
      Keep the phase to 0/off for now.
      
      Change-Id: Ic547ea0748d151b675f877527e656407fcf4d51e
      348bdc01
  7. 03 Apr, 2017 1 commit
  8. 22 Mar, 2017 1 commit
  9. 27 Feb, 2017 1 commit
    • Vignesh Venkatasubramanian's avatar
      vp9: Rename new_mt to row_mt · 58816014
      Vignesh Venkatasubramanian authored
      new_mt is a very generic name that will get obsolete soon enough.
      Since this is exposed as a codec control, renaming it to row_mt to
      signify row level paralellism. Also renaming the ETHREAD_BIT_MATCH
      codec control to ROW_MT_BIT_EXACT.
      
      Change-Id: Ic7872d78bb3b12fb4cf92ba028ec8e08eb3a9558
      58816014
  10. 07 Feb, 2017 1 commit
  11. 01 Feb, 2017 1 commit
  12. 24 Jan, 2017 1 commit
    • Ranjit Kumar Tulabandu's avatar
      Initialize errorperbit and sabperbit in ARNR filtering · 75d2443b
      Ranjit Kumar Tulabandu authored
      (Yunqing)
      This patch added the missing initialization in temporal filter.
      Borg test BDRate results:
      PSNR: -0.019%(lowres); -0.013%(hdres);
      SSIM: -0.001%(lowres); -0.010%(hdres).
      Other q values gave comparable but no better results.
      
      Change-Id: I7ad0c18b39e6f558342688e2fe1e12fdb133ce9b
      75d2443b
  13. 27 Dec, 2016 1 commit
    • Ranjit Kumar Tulabandu's avatar
      Bug fix to avoid random crashes during ARNR filtering · 7cf13826
      Ranjit Kumar Tulabandu authored
      The function 'vp9_find_best_sub_pixel_tree_pruned_more' is modified
      to return INT_MAX for handling invalid MV cases from UINT32_MAX.
      
      yunqingwang:
      patch 3: rebased on top of the tree.
      patch 4: The return type of vp9_find_best_sub_pixel_tree* was changed
      to uint32_t to fix ubsan warnings. Changing UINT_MAX back to INT_MAX
      was not quite right. Patch 4 modified vp9_temporal_filter.c to accept
      uint32_t.
      (Note: Inconsistency exists in vp9_find_best_sub_pixel_tree*, which
      will be fixed in a separate CL.)
      
      Change-Id: Ib1a79dc2aa41ea6335c21669c76883cdbb7e0535
      7cf13826
  14. 08 Aug, 2016 1 commit
  15. 02 Aug, 2016 1 commit
  16. 18 Jul, 2016 1 commit
  17. 07 Jul, 2016 1 commit
    • paulwilkins's avatar
      Noise energy Experiment in first pass. · 2580e7d6
      paulwilkins authored
      Use a measure of noise energy to adjust Q estimate and
      arf filter strength.
      
      Gains 0.3-0.5% on Lowres and |Netflix sets.
      Hdres and Midres neutral.
      
      Change-Id: Ic0de552e7b6763e70eeeaa3651619831b423e151
      2580e7d6
  18. 24 Jun, 2016 1 commit
  19. 21 Jun, 2016 1 commit
  20. 03 May, 2016 1 commit
  21. 01 Mar, 2016 1 commit
    • Jingning Han's avatar
      Port alt reference frame filter improvement to VP9 · 9c0a2a79
      Jingning Han authored
      Use sharp filter to generate motion compensated reference for
      temporal filtering. It improves the average coding performance of
      VP9 speed 0:
      derf    0.34%
      hevcmr  0.38%
      stdhd   0.58%
      
      Change-Id: I1772a051be545de8c343055274e5ca0929d19cda
      9c0a2a79
  22. 20 Jan, 2016 1 commit
  23. 09 Dec, 2015 2 commits
  24. 14 Sep, 2015 1 commit
  25. 31 Aug, 2015 1 commit
  26. 29 Aug, 2015 1 commit
  27. 27 Aug, 2015 1 commit
  28. 14 Aug, 2015 1 commit
  29. 10 Aug, 2015 1 commit
  30. 06 Jul, 2015 1 commit
  31. 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
  32. 15 May, 2015 2 commits
  33. 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
  34. 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
  35. 29 Apr, 2015 1 commit
    • 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
  36. 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
  37. 15 Dec, 2014 2 commits