1. 26 Apr, 2017 1 commit
  2. 20 Apr, 2017 2 commits
  3. 19 Apr, 2017 1 commit
    • Linfeng Zhang's avatar
      Clean CONVERT_TO_BYTEPTR/SHORTPTR in convolve · bf8a49ab
      Linfeng Zhang authored
      The rule is: if a short ptr is casted to a byte ptr, any offset
      operation on the byte ptr must be doubled. We do this by casting to
      short ptr first, adding offset, then casting back to byte ptr.
      Change-Id: I9e18a73ba45ddae58fc9dae470c0ff34951fe248
  4. 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
  5. 17 Apr, 2017 2 commits
    • Marco's avatar
      vp9: Add key_frame condition to is_reference check for loopfilter. · ad2e3598
      Marco authored
      This condiiton is not needed as key_frame should set the refresh
      of the reference frames, but good to have for clarity in condition.
      Change-Id: Icf9838e7e4f0ff5cf0a9562ae3b5d6c7e6f78702
    • Marco Paniconi's avatar
      Revert "Revert "vp9: Avoid encoder loopfilter for non-reference frames."" · 9aa429a6
      Marco Paniconi authored
      This reverts commit e9b7f98c.
      Reason for revert:
      Commit d578bdad fixes the issue (encoder/decoder mismatch
      in 3TL datarate test) that causes the original revert.
      Original change's description:
      > Revert "vp9: Avoid encoder loopfilter for non-reference frames."
      > This reverts commit 863f860b.
      > This causes encoder / decoder mismatches in various
      > VP9/DatarateTestVP9Large.BasicRateTargeting3TemporalLayers tests
      > BUG=webm:1408
      > Change-Id: Ic200c39d7ed9c0b0247ef562f5d6f7b2625f7e14
      Change-Id: Ifeb81460856d1d56482d4e0477a70ee98f8bfaa6
  6. 14 Apr, 2017 1 commit
  7. 13 Apr, 2017 1 commit
    • Marco's avatar
      vp9: Avoid encoder loopfilter for non-reference frames. · 863f860b
      Marco authored
      Useful for SVC, where the top layer enhancement frames may
      not update any reference buffers, as is the case for the
      patterns in the 1 pass CBR SVC when #temporal_layers > 1.
      ~3% encoder speedup for SVC patterns with temporal layers
      in 1 pass CBR mode.
      Updated the SVC datarate tests for the mismatch frames.
      Set the frame-dropper off in some tests with #temporal_layers > 1
      so we can correctly set #mismatch frames. Adjusted rate target
      threshold for tests where frame-dropper was turned off.
      Change-Id: Ia0c142f02100be0fed61cd2049691be9c59d6793
  8. 05 Apr, 2017 1 commit
  9. 04 Apr, 2017 1 commit
  10. 03 Apr, 2017 1 commit
    • Marco's avatar
      vp9: 1 pass CBR: cleanup to cyclic refresh. · 6b3f4bc7
      Marco authored
      Code cleanup: merged two functions that were doing postencode
      update for cylic refresh, remove some unused code and fix comments.
      No change in behavior.
      Change-Id: I9be0d7e346d34dec29bf4e5bb380a7bf81c8480a
  11. 29 Mar, 2017 1 commit
  12. 27 Mar, 2017 1 commit
    • Marco's avatar
      vp9: 1 pass: Move source sad computation into encodeframe loop. · 66c6b4d6
      Marco authored
      Refactor to split the 1 passs source sad computation into scene
      detection (currently used for VBR and screen-content mode), and
      superblock based source sad computation (used in non-rd CBR mode).
      This allows the source sad computation for CBR mode to be
      No change in compression.
      Change-Id: I112f2918613ccbd37c1771d852606d3af18c1388
  13. 24 Mar, 2017 1 commit
  14. 20 Mar, 2017 1 commit
    • Marco's avatar
      vp9: Use sb content measure to bias against golden. · 06c8713e
      Marco authored
      For each superblock, keep track of how far from current frame
      was the last significant content change, and use that (along
      with GF distance), to turnoff GF search in non-rd pickmode.
      Only enabled for speed >= 8.
      avgPNSR on RTC/RTC_derf down by ~0.9/1.2.
      Speedup on mac: ~3-5%.
      Speedup on arm: 3.6% for VGA and 4.4% for HD.
      Change-Id: Ic3f3d6a2af650aca6ba0064d2b1db8d48c035ac7
  15. 16 Mar, 2017 2 commits
  16. 14 Mar, 2017 1 commit
  17. 13 Mar, 2017 1 commit
    • Marco's avatar
      vp9: Fix to source_sad feature for SVC. · f0a22b23
      Marco authored
      Allow speed feature sf->use_source_sad to be used
      on highest spatial layer for SVC.
      Change-Id: I260eb0478902764f49f83e43b17024fe86ff3b22
  18. 10 Mar, 2017 1 commit
    • Marco's avatar
      vp9: Enable row multithreading for SVC in real-time mode. · ffb3c50d
      Marco authored
      Enable row-mt for SVC for real-time mode, speed >=5.
      Add the controls to the sample encoders, but keep it off for now.
      Add the control and enable it for the 1 pass CBR unittests.
      For speed 7, 3 layer SVC, 2 threads, row-mt enabled gives about ~5% speedup.
      Change-Id: Ie8e77323c17263e3e7a7b9858aec12a3a93ec0c1
  19. 09 Mar, 2017 1 commit
    • James Zern's avatar
      move vp9_scale_and_extend_frame_c to vp9_frame_scale.c · 2f31a164
      James Zern authored
      this is similar to the x86 configuration and helps mitigate an issue
      with a circular dependency between this function and the ssse3 variant
      causing an outsized increase in binary size (~300K for chrome)
      .text 255B000 -> 252B000
      .data 7B000 -> 75000
      -221184 bytes
      Change-Id: Ic95b142ecd62dd4f1795788aa27dd8fab59b708c
  20. 08 Mar, 2017 1 commit
    • Marco's avatar
      vp9: Fix for denoising with SVC. · 45de35fc
      Marco authored
      Fix the conditon for getting last_source when denoising is on.
      This avoids unneeded scaling in the case of SVC.
      No change in quality.
      Change-Id: I32c1c2c9085104da51af8535716bcc4d55fb0f42
  21. 02 Mar, 2017 1 commit
  22. 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
  23. 24 Feb, 2017 1 commit
    • Jerome Jiang's avatar
      Make vp9_scale_and_extend_frame_ssse3 work for hbd when bitdepth = 8. · 0998a146
      Jerome Jiang authored
      Only works for bitdepth = 8 when compiled with high bitdepth flag.
      4x speed ups for handling 1:2 down/upsampling.
      Validated manually for:
      1) Dynamic resize for a single layer encoding
      2) SVC encoding with 3 spatial layers
      Results are bitexact with the patch and the speed gain (~4x) in the
      scaling was verified.
      Change-Id: I1bdb5f4d4bd0df67763fc271b6aa355e60f34712
  24. 22 Feb, 2017 1 commit
    • Marco's avatar
      vp9: Incorporate source sum_diff into non-rd partition thresholds. · 7f2daa74
      Marco authored
      Increase the variance partition thresholds for superblocks that
      have low sum-diff (from source analysis prior to encoding frame).
      Use it for now only for speed >= 7 or for denoising on.
      Small change on metrics for rtc set: less than ~0.1 avgPNSR decrease
      on RTC set, for both speed 7 and 8.
      Change-Id: I38325046ebd5f371f51d6e91233d68ff73561af1
  25. 21 Feb, 2017 1 commit
  26. 20 Feb, 2017 1 commit
  27. 16 Feb, 2017 1 commit
  28. 15 Feb, 2017 2 commits
    • paulwilkins's avatar
      Additional first pass stats. · 945ccfee
      paulwilkins authored
      Added counts that split the intra coded blocks into low and high variance.
      Change-Id: Ic540144b34d5141659081bb22f7ee16fd6861f14
    • Ranjit Kumar Tulabandu's avatar
      Row based multi-threading of encoding stage · 71061e93
      Ranjit Kumar Tulabandu authored
      (Yunqing Wang)
      This patch implements the row-based multi-threading within tiles in
      the encoding pass, and substantially speeds up the multi-threaded
      encoder in VP9.
      Speed tests at speed 1 on STDHD(using 4 tiles) set show that the
      average speedups of the encoding pass(second pass in the 2-pass
      encoding) is 7% while using 2 threads, 16% while using 4 threads,
      85% while using 8 threads, and 116% while using 16 threads.
      Change-Id: I12e41dbc171951958af9e6d098efd6e2c82827de
  29. 13 Feb, 2017 1 commit
    • paulwilkins's avatar
      Aggressive VBR method. · ce7b3845
      paulwilkins authored
      VBR method that allows a wider Q range for the first normal frame
      in each ARF group and then centers the min - max range for the rest of
      the arf group on the chosen Q value for that first frame.
      This allows for quite rapid adjustment of the active Q range even if the
      initial estimate is poor.
      In some cases where the ARF frames themselves are tending to
      undershoot but the normal frames are overshooting this can still give
      net undershoot. This can be corrected by allowing a larger Q delta for
      arf frames but is usually is a sign that the allocation to the arfs was to
      Change-Id: Icec87758925d8f7aeb2dca29aac0ff9496237469
  30. 07 Feb, 2017 1 commit
  31. 02 Feb, 2017 1 commit
  32. 27 Jan, 2017 1 commit
  33. 24 Jan, 2017 1 commit
  34. 20 Jan, 2017 1 commit
  35. 18 Jan, 2017 1 commit
  36. 17 Jan, 2017 1 commit
    • Jerome Jiang's avatar
      vp9: Set low variance flag when partition is copied. · 0c65aed0
      Jerome Jiang authored
      Also set the flag to 1 when exit early choosing 64x64 block
      such that skipping new mv for golden works in these scenerios.
      Change the size of prev_segment_id to the number of superblocks
      to save memory.
      Borg test shows quality regression of 0.012% on average PSNR
      and 0.035% on SSIM.
      Change-Id: I5014224c8617d439d35c66ece3fed9ae30b31d23