1. 05 Sep, 2017 1 commit
  2. 01 Sep, 2017 1 commit
  3. 31 Aug, 2017 1 commit
  4. 29 Aug, 2017 1 commit
  5. 28 Aug, 2017 1 commit
  6. 25 Aug, 2017 2 commits
    • Marco's avatar
      vp9: Speed 6 adapt_partition for live/vbr usage. · a0de2692
      Marco authored
      Enable adapt_partition for vbr mode for speed 6.
      This allows the usage of the pickmode-based partition
      (used in speed 5), but only selectively for superblocks
      with high source sad, otherwise the faster variance based
      partition scheme is used.
      
      For speed 6 on ytlive set: avgPSNR/SSIM metrics up by ~0.6%,
      several clips up by ~1.5%. Small/negligible decrease in speed.
      
      Change-Id: I12f3efef6b3e059391de330fdbe5a44c2587f1f8
      a0de2692
    • Marco's avatar
      vp9: SVC: Modify mv search condition in speed features. · a74593b3
      Marco authored
      For SVC at speed >= 7: only use the improved mv search
      on base spatial layer, if top layer resolution is above 640x360.
      
      ~2.3% speedup
      Small/negligible loss in avgPSNR metrics on rtc set.
      
      Change-Id: Iaef75a57ebf1c248931bc1aa28d20b7fecac1851
      a74593b3
  7. 24 Aug, 2017 1 commit
    • Marco's avatar
      vp9: Adjust 16x16 splot threshold for variance partition · d1477715
      Marco authored
      For speeds < 7, increase threshold that controls the split
      of 16x16->8x8 blocks, for resolutions 720p and higher.
      
      Minor change for speed 5 (since it uses reference partition scheme
      which only uses variance partition as first step).
      For speed 6: ~0.5% increase in avgPSNR/SSIM metrics on ytlvie set.
      No change in speed.
      
      Change-Id: I5126580973201538d8ca26a9256b93c4d11d685b
      d1477715
  8. 23 Aug, 2017 2 commits
    • Marco's avatar
      vp9: SVC: Skip NEWMV for small blocks for (0, 0) base_mv. · c9ff7b66
      Marco authored
      For SVC encoding:
      average speedup ~1.5%, with small ~0.57 loss in avgPSNR metrics.
      
      Change-Id: Icebce6f6ef4e819d7dfcf8db898c583167351de4
      c9ff7b66
    • Johann's avatar
      quantize fp: neon implementation · e83d99d7
      Johann authored
      About 4x faster when values are below the dequant threshold and 10x
      faster if everything needs to be calculated.
      
      Both numbers would improve if the division for dqcoeff could be
      simplified.
      
      BUG=webm:1426
      
      Change-Id: I8da67c1f3fcb4abed8751990c1afe00bc841f4b2
      e83d99d7
  9. 22 Aug, 2017 2 commits
    • Marco's avatar
      vp9: Condition lighting change detection on CBR mode. · a31461c8
      Marco authored
      This feature is used for the CBR RTC encoding mode
      at speed >= 6. This change will exclude it for VBR mode.
      
      For speed 6 live encoding (VBR):
      avgPSNR/SSIM metrics on ytlive set up by ~1% (few clips up by 2/3%).
      No change in speed.
      
      Change-Id: I1a0dd94c334f7df309ab5a48d477d7e25355b798
      a31461c8
    • Johann's avatar
      quantize: capture skip block early · 7a178a56
      Johann authored
      This should probably be handled before vp9_regular_quantize_b_4x4 even
      gets called.
      
      Fixes an assert resulting from removing skip_block from the quantize
      functions.
      
      BUG=webm:1459
      
      Change-Id: I7f52b53f959b4654b3d4517ebda31a678f4d0fde
      7a178a56
  10. 21 Aug, 2017 3 commits
    • Johann's avatar
      quantize fp: ignore skip_block in arm · b527b473
      Johann authored
      Change-Id: Ie8ac00efa826eead2a227726a1add816e04ff147
      b527b473
    • Johann's avatar
      quantize fp: ignore skip_block in x86 · 7b13d99b
      Johann authored
      Change-Id: I1272917c49cf6e6710e52c36535b2fc8c8dced78
      7b13d99b
    • Johann's avatar
      Remove skip_block from quantize · 13eed991
      Johann authored
      This condition is handled before this code is reached. The ssse3 version
      of the function has always crashed when attempting to handle the
      skip_block condition.
      
      Add assert() and comments regarding the usage of skip_block.
      
      Removing the parameter is a fairly involved process so leave it be for
      the moment.
      
      Change-Id: Ib299f6fc6589d7ee102262cc74a7aeb60110bc5a
      13eed991
  11. 17 Aug, 2017 1 commit
    • Johann's avatar
      quantize: normalize intermediate types · 7f602d61
      Johann authored
      Despite abs_coeff being a positive value, all the other implementations
      treat it as signed which simplifies restoring the sign.
      
      HBD builds cast qcoeff to avoid a visual studio warning. Match
      vp9_quantize.c style of casting the entire expression.
      
      Change-Id: I62b539b8df05364df3d7644311e325288da7c5b5
      7f602d61
  12. 16 Aug, 2017 2 commits
    • paulwilkins's avatar
      Prevent parameters that can cause invalid ARF groups. · b814e2d8
      paulwilkins authored
      Having a very low "lag_in_frames" value could cause the encoder to create
      incorrect / corrupt ARF groups including displayed frames that update the
      ARF buffer and false overlay frames that are coded at low rate but are not
      actually overlays of a real ARF frame.
      
      This is linked to a reported unit test "slow down" where the chosen parameters
      (lag of 3 frames) gave rise to such "broken" ARF group(s).
      
      See also BUG=webm:1454
      
      Change-Id: If52d0236243ed5552537d1ea9ed3fed8c867232c
      b814e2d8
    • paulwilkins's avatar
      Fix for encoder slowdown (for speeds >= 3) · e15be302
      paulwilkins authored
      Some clips in nightly unit test exhibiting significant encoder slowdown which
      appears to bisect to Change-Id: I692311a709ccdb6003e705103de9d05b59bf840a.
      
      The above change allowed for emergency iterations of the recode loop and
      adjustment of the Q range if there is a large rate miss.
      
      This patch disables the above adaptation for cases of cpu_speed >= 3 or more
      specifically where cpi->sf.recode_loop >= ALLOW_RECODE_KFARFGF.
      
      For speeds >= 3 the code does not currently run a dummy bit pack operation
      inside the recode loop. Without this dummy pack operation there is no up to
      date estimate of the current frame's size to use as a basis for assessing the
      requirement for a recode. In practice it was using the previous frames size (or 0
      for the first frame) which could cause odd behavior.
      
      If we require the emergency rate correction added in  Change-Id: I6923.. for
      the higher speed settings it will be necessary to enable the dummy pack
      which will in turn hurt encode speed.
      
      BUG=webm:1454
      
      Change-Id: I4fb3c6062ca9508325a6f31582f8e80f1a9b126f
      e15be302
  13. 15 Aug, 2017 2 commits
    • Jerome Jiang's avatar
      Clean up writing YUV files for debug purpose. · a153080b
      Jerome Jiang authored
      Change legacy vp8/9_write_yuv_frame to vpx_write_yuv_files.
      Delete some flags that can be enabled during build.
      
      To enable writing denoised YUV, use the following command line:
      CFLAGS='-DOUTPUT_YUV_DENOISED' ./configure
      --enable-vp9-temporal-denoising
      
      For skinmap, use CFLAGS='-DOUTPUT_YUV_SKINMAP'
      
      Change-Id: I236974ac8b3cf279d20c4dc7f6162d8b480b6528
      a153080b
    • Marco's avatar
      vp9: Denoiser fix: use correct bsize for skin detection. · e9ccc6fe
      Marco authored
      Change-Id: I9d201fa3a4b00ebd147b57ed519fab8d59b0a802
      e9ccc6fe
  14. 14 Aug, 2017 1 commit
  15. 11 Aug, 2017 1 commit
  16. 10 Aug, 2017 1 commit
    • Jerome Jiang's avatar
      vp9 SVC: Fix the denoiser frame buffer management. · 0f8ebdde
      Jerome Jiang authored
      Change the denoiser frame buffer management for SVC to more generally
      handle the layer patterns in SVC (where last is not always refreshed).
      
      This change is only for SVC with denoising and is bitexact.
      
      Change-Id: Ic2b146a924cdf6e7114609158afa3d4880fe3fae
      0f8ebdde
  17. 09 Aug, 2017 1 commit
    • paulwilkins's avatar
      Patch relating to Issue 1456. · db8fa86a
      paulwilkins authored
      Testing of 4k videos encoded with a fixed arbitrary chunking interval
      uncovered a bug where by if a chunk ends 1 frame before a real scene cut,
      the next chunk may be encoded with two consecutive key frames at the start
      with the first being assigned 0 bits.
      
      This fix insures that where there is a key frame group of length 1 it is
      at least assigned 1 frames worth of bits not 0.
      
      See also patch Change-Id: I692311a709ccdb6003e705103de9d05b59bf840a
      which by virtue of allowing fast adaptation  of Q made this bug more visible.
      
      BUG=webm:1456
      
      Change-Id: Ic9e016cb66d489b829412052273238975dc6f6ab
      db8fa86a
  18. 08 Aug, 2017 1 commit
    • Marco's avatar
      vp9: Partition logic adjustment for speed 6 feature. · 427de67e
      Marco authored
      When adapt_partition_source_sad is enabled (currently only at
      speed 6 for resoln <= 360p): use lower subsize (8x8 instead of 16x16)
      for nonrd_select_partition on 32X32 blocks.
      
      And force avoiding rectangular partition checks in
      nonrd_pick_partition for speed >= 6.
      
      Small increase ~0.5 in metrics for speed 6 on rtc_derf,
      no change in speed.
      
      Change-Id: Id751bc8f7573634571b2d6f5e29627cd5cebccae
      427de67e
  19. 03 Aug, 2017 1 commit
  20. 02 Aug, 2017 1 commit
    • Yunqing Wang's avatar
      Force the bit exactness in the first pass · bfd0f41f
      Yunqing Wang authored
      Originally, for the purpose of keeping a fast first pass, the first-pass
      stats between row_mt_mode = 0 and row_mt_mode = 1 are not bit exact, but
      that difference is very small that doesn't cause a mismatch between the
      final bitstreams. However, if the encoder changes, this minor difference
      may cause a mismatch. Thus, this patch always forces the first pass to
      be bit exact.
      
      BUG=webm:1453
      
      Change-Id: I2b67cf529dee81f660f9d9e7fe9a60ea3c7b12b8
      bfd0f41f
  21. 01 Aug, 2017 1 commit
  22. 31 Jul, 2017 2 commits
  23. 29 Jul, 2017 3 commits
    • James Zern's avatar
      Revert "vp9: Speed feature to adapt partition based on source_sad." · c9266b85
      James Zern authored
      This reverts commit 064fc570.
      
      This causes an assertion failure in vp9_mcomp.c when running
      gtest_filter=VP9/MotionVectorTestLarge.OverallTest/41:
      `mv->col >= -((1 << (11 + 1 + 2)) - 1) && mv->col < ((1 << (11 + 1 + 2))
      - 1)'
      
      Change-Id: I449e777bf18b661cb3f1d82253610c55c51687f6
      c9266b85
    • Jerome Jiang's avatar
      vp9: Adjust logic in source sad for screen content. · ac211fe2
      Jerome Jiang authored
      Change-Id: I917d106f4c95ea44e413e23881f6303982e1a6a3
      ac211fe2
    • Marco's avatar
      vp9: Speed feature to adapt partition based on source_sad. · 064fc570
      Marco authored
      Move the source_sad feature to speed 6 (from speed 7), and
      add speed feature to switch from the variance-based partition
      to reference_partition (which uses nonrd-pickmode for bsize selection)
      if source_sad is high.
      
      Currently used only for speed 6 for resoln <= 360p.
      About 4-5% improvement on 360p in RTC set.
      Some speed slowdown, but still ~30% faster than speed 5.
      
      Change-Id: Ib0330ee5fe9fdd2608aed91359a2a339d967491c
      064fc570
  24. 28 Jul, 2017 1 commit
  25. 22 Jul, 2017 1 commit
  26. 18 Jul, 2017 4 commits
  27. 17 Jul, 2017 1 commit
    • Marco's avatar
      vp9: Fix to setting content_state for real-time mode. · ad563713
      Marco authored
      When content_state_sb is set to LowVarHighSumdiff, don't reset
      it to VeryHighSad. Visually better on clips with strong lighting changes.
      
      Small/negligible change in RTC metrics and speed.
      
      Change-Id: I20c383e3c4cf8d1149de5f9260449c0b7cf7c6aa
      ad563713