1. 31 Mar, 2015 1 commit
  2. 24 Mar, 2015 1 commit
  3. 20 Mar, 2015 1 commit
    • paulwilkins's avatar
      Experimental rd bias based on source vs recon variance. · 9a1ce7be
      paulwilkins authored
      This experiment biases the rd decision based on the impact
      a mode decision has on the relative spatial complexity of the
      reconstruction vs the source.
      The aim is to better retain a semblance of texture even if it
      is slightly misaligned / wrong, rather than use a simple rd
      measure that tends to favor use of a flat predictor if a perfect
      match can't be found.
      This improves the appearance of texture and visual quality
      on specific test clips but is hidden under a flag and currently
      off by default pending visual quality testing on a wider Yt set.
      Change-Id: Idf6e754a8949bf39ed9d314c6f2daaa20c888aad
  4. 18 Mar, 2015 2 commits
    • Marco's avatar
      Adjustments to aq-mode=3. · 71e6ed7b
      Marco authored
      Factor in segment#2 and skip blocks into the postencode estimated bits,
      and increase somewhat the aggressiveness of the refresh.
      PSNR/SSIM Metrics on RTC set go up by ~0.8/0.5%.
      Change-Id: I5d4e7cb00a3aefb25d18c88b6b24118b72dc5d51
    • Marco's avatar
      Update to variance partition. · e5210915
      Marco authored
      Use force_split to constrain the partition selection.
      This is used because in the top-down approach to variance partition,
      a block size may be selected even though one of its subblocks may have
      high variance.
      In this patch the selection of the 64x64 block size will only
      be allowed if the variance of all the 32x32 subblocks are also below the threshold.
      Stil testing, but some visual improvement for areas near slow moving boundary
      can be seen. Metrics for RTC set increase by about ~0.5%.
      Change-Id: Iab3e7b19bf70f534236f7a43fd873895a2bb261d
  5. 17 Mar, 2015 2 commits
  6. 16 Mar, 2015 1 commit
  7. 14 Mar, 2015 1 commit
    • Jingning Han's avatar
      Fix choose_partitioning threshold setup for speed -5 · 1f00a9b9
      Jingning Han authored
      The compression performance of speed -5 is on average 12.6% better
      than speed -6. At lower bit-rates, the gains are typically 20% or
      more. For 2-thread encoding, the speed -5 takes about 1.6x time of
      speed -6.
      Change-Id: If7a73464a24d33e8f49b9533b51ec51c8da7fc80
  8. 13 Mar, 2015 1 commit
    • Marco's avatar
      Fix crash with vp9 denoiser on. · e38066a7
      Marco authored
      Crash occured on very first key frame, because denoiser
      temporal function was beng entered.
      Updated denoiser unittest to set cpu_used from first frame,
      and verified fix fixes the crash.
      Change-Id: I3be1124b52846fbbe7248d2c3d6136e086c80bc1
  9. 12 Mar, 2015 1 commit
  10. 11 Mar, 2015 2 commits
    • Jingning Han's avatar
      Prevent integer overflow in choose_partitioning · 238b6be2
      Jingning Han authored
      Re-arrange the multiplication and right shift operations to avoid
      integer overflow in choose_partitioning.
      Change-Id: Ib4005cafb410a67c1960486471d75b6ebe38c4e0
    • Jingning Han's avatar
      Refactor to remove GLOBAL_MOTION · 1ca4d51b
      Jingning Han authored
      Make the vp9_int_pro_motion_estimation() function return zero
      motion vector if high bit depth is turned on, instead of removing
      it from compiled codes.
      Change-Id: Ia48f010eb590b2d517d5678c394110b326a1a95e
  11. 10 Mar, 2015 1 commit
    • Yaowu Xu's avatar
      Enable using Golden reference in choose_partition() · 059a473b
      Yaowu Xu authored
      Choose_partition uses only the last frame as reference frame in making
      partition decision, this commit adds the check on how well Golden
      frame with (0,0) predicts the current block, and uses GF(0,0) as
      basis for partition decision if it produces better prediction.
      The commit improves rtc speed 6 and 7 encoding by 0.14% and 0.19%
      Change-Id: I156acf925bd6e0b586d48155d1940d27270a3915
  12. 09 Mar, 2015 1 commit
  13. 07 Mar, 2015 1 commit
  14. 05 Mar, 2015 3 commits
  15. 04 Mar, 2015 4 commits
    • Jingning Han's avatar
      Move integral projection motion search to vp9_mcomp.c · 2deecdd5
      Jingning Han authored
      Make it a general purpose fast motion estimation function, to be
      used in the mode search process.
      Change-Id: Ib354cb0e664dc61c30c0b2314297835ee75b157a
    • Jingning Han's avatar
      Use SAD value to set chroma cost flag · 7d8061a4
      Jingning Han authored
      This saves an extra 64x64 variance calculation and replaces two
      32x32 variance functions with sad functions. The compression
      performance change is unnoticeable.
      Change-Id: I6d33868695664ec73b56c42945162ae61c484856
    • Adrian Grange's avatar
      Make encoder buffer allocation dynamic · 3807dd82
      Adrian Grange authored
      Frame buffers are now allocated dynamically on-demand.
      Entries in the reference frame map, cm->ref_frame_map,
      may now be set to -1 (INVALID_IDX) to indicate that
      there is not a valid reference buffer in that "slot".
      All slots in the reference frame map are now initialized
      to the empty state (-1) and each buffer is initialized
      to have a reference count of 0.
      Change-Id: Id1afe98de98db4ae8b2dfefed7889c3b28c68582
    • Jingning Han's avatar
      Properly handle the boundary blocks for integral projection search · e5fe1658
      Jingning Han authored
      Use rectangular block size for integral projection motion estimation
      if the the 64x64 block has over half block outside the frame. This
      avoids the issue that the motion information of these blocks is
      dominated by the extended pixels, instead of the pixels of interest.
      Change-Id: I22f4d2bb7f6a20db9b3f5e2e5463a7f4b9d1b737
  16. 03 Mar, 2015 2 commits
    • Deb Mukherjee's avatar
      dc quantizer fix for 32x32 transforms · 6910e92d
      Deb Mukherjee authored
      The rounding factor needs to be scaled down by a factor of 2.
      Also, the quantized and dequantized coefficients are memset to 0
      when dc quantizer is used.
      Change-Id: Ifa68bab02addbf1b83d249c5b4cbd5cda796b1cf
    • Yaowu Xu's avatar
      Adapt color sensitiviy threshold to luma signal energy · 47ac3ea0
      Yaowu Xu authored
      Instead using only a fixed threshold, this commit adapts the threshold
      for color sensitivity decision to luma signal energy: chroma channel's
      sse is at least 1/6 of that in luma for color sensitivity flag to be
      set to active.
      This recoups a large portion of the speed loss due to accounting for
      chroma component costs in RTC mode decision.
      Change-Id: Ie01f747f6037dba6a1d1ed3e10b71a0ef1abc42c
  17. 01 Mar, 2015 1 commit
    • Jingning Han's avatar
      Use variance metric for integral projection vector match · 1790d452
      Jingning Han authored
      This commit replaces the SAD with variance as metric for the
      integral projection vector match. It improves the search accuracy
      in the presence of slight light change. The average speed -6
      compression performance for rtc set is improved by 1.7%. No speed
      changes are observed for the test clips.
      Change-Id: I71c1d27e42de2aa429fb3564e6549bba1c7d6d4d
  18. 26 Feb, 2015 1 commit
  19. 25 Feb, 2015 1 commit
    • Jingning Han's avatar
      Motion compensated reference refinement · b7050c0b
      Jingning Han authored
      This commit applies one-step refinement search to the resulting
      motion vector of the integral projectiion based motion estimation,
      per 64x64 block. It improves the coding performance of speed -6.
      pedestrian 1080p 500 kbps
      51735 b/f, 36.794 dB, 16044 ms ->
      51382 b/f, 36.793 dB, 16282 ms
      cloud 1080p 500 kbps
      24081 b/f, 37.988 dB, 14016 ms ->
      23597 b/f, 38.076 dB, 12774 ms
      vidyo1 720p 1000 kbps
      16552 b/f, 40.514 dB, 8279 ms ->
      16553 b/f, 40.543 dB, 8510 ms
      The rtc set compression performance is improved by 0.5%.
      Change-Id: I3d09bea2caf58b2a4f3b38aa26fffafcbe9a2c17
  20. 24 Feb, 2015 1 commit
    • Jingning Han's avatar
      Re-distribute hierarchical vector match pattern · f87e315e
      Jingning Han authored
      This commit modifies the hierarchical vector match patter. It
      avoids repeated SAD computation at same points. The function
      vp9_vector_sad_sse2 is called 12 times per 64x64 block, instead
      of 15 times as before. The effective coverage remains the same.
      Change-Id: I91ad9d27d40db8963c907d02af84e10702136994
  21. 20 Feb, 2015 1 commit
    • Marco's avatar
      Adjustments to cyclic refresh (aq-mode=3). · 0187f4b4
      Marco authored
      Target higher delta-qp for big blocks with zero motion,
      and for segment#1: avoid 64x64 partition size and force 8x8 tx size.
      Metrics on RTC set mostly positive: SSIM up by ~4%, PSRN by ~1.5%.
      Doesn't seem to be any change in speed.
      Change-Id: I1f68fa3c4f62dab3b90cc58041f05ebb048ae5ac
  22. 19 Feb, 2015 2 commits
    • Jingning Han's avatar
      Integral projection based motion estimation · ed2dc59c
      Jingning Han authored
      This commit introduces a new block match motion estimation
      using integral projection measurement. The 2-D block and the nearby
      region is projected onto the horizontal and vertical 1-D vectors,
      respectively. It then runs vector match, instead of block match,
      over the two separate 1-D vectors to locate the motion compensated
      reference block.
      This process is run per 64x64 block to align the reference before
      choosing partitioning in speed 6. The overall CPU cycle cost due
      to this additional 64x64 block match (SSE2 version) takes around 2%
      at low bit-rate rtc speed 6. When strong motion activities exist in
      the video sequence, it substantially improves the partition
      selection accuracy, thereby achieving better compression performance
      and lower CPU cycles.
      The experiments were tested in RTC speed -6 setting:
      cloud 1080p 500 kbps
      17006 b/f, 37.086 dB, 5386 ms ->
      16669 b/f, 37.970 dB, 5085 ms (>0.9dB gain and 6% faster)
      pedestrian_area 1080p 500 kbps
      53537 b/f, 36.771 dB, 18706 ms ->
      51897 b/f, 36.792 dB, 18585 ms (4% bit-rate savings)
      blue_sky 1080p 500 kbps
      70214 b/f, 33.600 dB, 13979 ms ->
      53885 b/f, 33.645 dB, 10878 ms (30% bit-rate savings, 25% faster)
      jimred 400 kbps
      13380 b/f, 36.014 dB, 5723 ms ->
      13377 b/f, 36.087 dB, 5831 ms  (2% bit-rate savings, 2% slower)
      Change-Id: Iffdb6ea5b16b77016bfa3dd3904d284168ae649c
    • Jingning Han's avatar
      Fix a check condition in nonrd_pick_partition · 83559e73
      Jingning Han authored
      Change-Id: Ic92fb4b16948f745c218351b24fdafecf9abce3a
  23. 10 Feb, 2015 2 commits
    • Yaowu Xu's avatar
      Move computation up to frame level · ee5d7999
      Yaowu Xu authored
      This is to avoid redo the same calculation repeatly, and also allow
      easier adjustments for further experiments.
      This commit shall have no effect on quality/compression.
      Change-Id: I4460acf5c808ff5518da18d21e002c5da58af857
    • Jingning Han's avatar
      Fix block partition size in fill_mode_info_sb · ebb4c9e8
      Jingning Han authored
      This commit fixes the sub block partition size used in
      fill_mode_info_sb. Previous implementation effectively disabled
      the rectangular block sizes. This commit resolved this issue.
      Change-Id: Ic1c383ab0a9a2e7d59e85b388093f1f1f94d1e7f
  24. 04 Feb, 2015 6 commits
    • Yaowu Xu's avatar
      Remove unnecessary initialization · c905c42a
      Yaowu Xu authored
      loop_filter_level is always reset in loop_filter_frame() later in
      Change-Id: I608e03d905a6b23e7d5025ca747e4784c665007e
    • Yaowu Xu's avatar
      Move tx_mode decision logic into select_tx_mode() · 581aee00
      Yaowu Xu authored
      Change-Id: I7f8f78c33eb3f33344b029a27bda320f4d68c577
    • Yaowu Xu's avatar
      Replace repeated check with single variable · 19451e6d
      Yaowu Xu authored
      Change-Id: I2f6a669bf7c6d9796388ad3f3fa3fc942635c215
    • Yaowu Xu's avatar
      Adjust partitioning threshold based rtc speed · bdfb5f98
      Yaowu Xu authored
      On rtc set:
      speed 7 quality improves about 0.5%
      speed 8 quality improves about 1.0%
      Encoding time for speed 7 changes from 67804ms to 65889ms
      Encoding time for speed 8 changes from 58659ms to 56808ms
      Change-Id: Iabcfb53012fc1b9f3326cdbc167e5758b8c7ad30
    • Jingning Han's avatar
      Unify luma and chroma inter predictors in choose_partitioning · 1b9082ec
      Jingning Han authored
      Change-Id: I8bfc80f4fffb0892e93d3326394a52d1ee3c0f37
    • Jingning Han's avatar
      Account for chroma component costs in RTC mode decision · 0c6d3a03
      Jingning Han authored
      This commit allows the encoder to account for additional chroma
      plane costs in the mode decision process, if the current block
      potentially contains significant color change. It improves the
      visual quality at very low bit-rates.
      The compression performance of dark720p is improved by 12.39% in
      speed 6. For jimred at 150 kbps, the PSNR of V component (red)
      increased by 0.2 dB, at the expense of about 5% increase in
      encoding time. Note that for sequences where the chroma components
      are fairly consistent, the encoding time increase is negligible.
      On average the rtc set compression performance is improved by
      1.172% in PSNR and 1.920% in SSIM.
      Change-Id: Ia55b24ef23a25304f7ec9958fbf07fd6e658505c