1. 12 Mar, 2015 1 commit
  2. 11 Mar, 2015 8 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
      238b6be2
    • Marco's avatar
      Fix visual studio build failure. · a291b0b4
      Marco authored
      Change-Id: Ifeb14f945d0f0300eb7b21b38e5720ac1c11a6cf
      a291b0b4
    • Jingning Han's avatar
      Remove unnecessary speed feature checking · 313c28f8
      Jingning Han authored
      This commit removes the pred_mv_sad comparison from rtc motion
      search, given that a stronger comparison has been done at the
      mode search level to eliminate unlikely selected reference frames.
      
      Change-Id: I49b8d24b2174303066fd8eff2102c0648f2869df
      313c28f8
    • Jingning Han's avatar
      Apply fast motion search to golden reference frame · 54eda13f
      Jingning Han authored
      This commit enables the rtc coding mode to run integral projection
      based motion search for golden reference frame. It improves the
      speed -6 compression performance by 1.1% on average, 3.46% for
      jimred_vga, 6.46% for tacomascmvvga, and 0.5% for vidyo clips. The
      speed -6 is about 6% slower.
      
      Change-Id: I0fe402ad2edf0149d0349ad304ab9b2abdf0c804
      54eda13f
    • 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
      1ca4d51b
    • Adrian Grange's avatar
      Clamp rate correction factor after scaling it · 42a89eb8
      Adrian Grange authored
      Added clamp on the rate correction factor after
      it has been scaled.
      
      Change-Id: I5d4b46a101987b43c5bcfd7e0bd1b7b4d53640a4
      42a89eb8
    • Yaowu Xu's avatar
      Separate rd_thresh adaption by ref_frame · d549aa3b
      Yaowu Xu authored
      Only update the rd_thresh factors for modes sharing same reference
      frame. This helps overall compression of 6 and 7 by .13% and .19%
      respectively without any noticeable speed difference.
      
      Change-Id: Idb3a3879512c5d7d0880034516079949290690c5
      d549aa3b
    • Deb Mukherjee's avatar
      Some rate control adjustments to control overshoot · 0308e2ee
      Deb Mukherjee authored
      Some rate control adjustments to control overshoot
      in the constrained quality mode.
      
      Change-Id: I8907b9a883642d779009d0a138adfa6ba67e7f41
      0308e2ee
  3. 10 Mar, 2015 3 commits
    • Marco's avatar
      Modify update golden reference update under aq-mode=3 mode. · fb31aa09
      Marco authored
      For non-SVC 1 pass CBR: make the GF update interval a multiple of the
      cyclic refresh period, and use encoding stats to prevent GF update at certain times.
      
      Change-Id: I4c44cacc2f70f1d27391a47644837e1eaa065017
      fb31aa09
    • Adrian Grange's avatar
      Fix vp9_compute_qdelta_by_rate loop behavior · 78df7122
      Adrian Grange authored
      The return value from vp9_compute_qdelta_by_rate, which is
      a delta value for the quantizer, could never be 0 if
      (qindex == rc->worst_quality).
      
      This occurs because target_index was setup unconditionally
      in the loop and yet the loop counter stopped at
      (rc->worst_quality - 1).
      
      Change-Id: I6b59cd9b5811ff33357e71cd7d814c5e53d291f2
      78df7122
    • 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%
      respectively.
      
      Change-Id: I156acf925bd6e0b586d48155d1940d27270a3915
      059a473b
  4. 09 Mar, 2015 3 commits
    • Jingning Han's avatar
      Skip golden ref frame check when it is same as last ref frame · 6245a91e
      Jingning Han authored
      When golden reference frame is refreshed, the next frame has both
      its last and golden reference frames point to the same reference
      frame in real-time coding mode. Experiments suggest that using
      two separate reference frames for frames right after golden refresh
      frame does not provide further compression performance advantage.
      This commit hence retains the current encoder implementation and
      shuts off the mode search over golden reference frame in this case.
      
      It makes the encoder run slightly faster at no coding performance
      change.
      
      Change-Id: I1561f7799253a10e675d05c63c1749fe9e85b472
      6245a91e
    • Alex Converse's avatar
      Don't waste time partitioning skip superblocks. · 06b59299
      Alex Converse authored
      Force 64x64 partitioning when a whole superblock is SEGMENT_LVL_SKIP. This
      drops encode times of screens mostly at rest by 20%.
      
      Change-Id: Ieba554b0b8a0c1679aae784a8bd11f038ab942c3
      06b59299
    • paulwilkins's avatar
      Allow q adjustment for VPX_CQ and VPX_CBR. · 2cff9c4e
      paulwilkins authored
      Adjustment previously only enabled in VBR mode.
      
      This patch allows adjustment of min and max q for CBR
      and adjustment of max q only for CQ mode.
      
      Change-Id: Id5e583f3d50453cd544fc57249acacd946457482
      2cff9c4e
  5. 07 Mar, 2015 1 commit
  6. 06 Mar, 2015 1 commit
    • Yunqing Wang's avatar
      Modify the setting of transform skip flags in non-rd mode · 268f260d
      Yunqing Wang authored
      While searching for the best mode in non-rd case, SSE of
      a partition block is calculated and the transform size is set.
      This patch rewrites the skip checking conditions based on
      transform size instead of partition size to be more precise.
      
      Small gains were seen in rtc set borg test (speed 6).
      AVG PSNR: 0.087%, overall PSNR: 0.073%, SSIM: 0.146%.
      No noticeable speed change.
      
      Change-Id: I5603ca5339c784dfa02263f4005988ccd8c32f6e
      268f260d
  7. 05 Mar, 2015 6 commits
  8. 04 Mar, 2015 5 commits
    • Adrian Grange's avatar
      Small rationalization of code in vp9_first_pass · fed9e1fe
      Adrian Grange authored
      Change-Id: I87cc0e038171c60a957298827e312fead500f7fb
      fed9e1fe
    • 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
      2deecdd5
    • 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
      7d8061a4
    • 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
      3807dd82
    • 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
      e5fe1658
  9. 03 Mar, 2015 4 commits
  10. 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
      1790d452
  11. 27 Feb, 2015 2 commits
    • Jingning Han's avatar
      Fix source frame border extension · fe85fabb
      Jingning Han authored
      This commit fixes an issue in source frame border extension. It
      causes certain frame resolution such as 640x480 to have a portion
      of the right/bottom extension filled by zeros, which misleads
      motion search and degrades transform coding performance when large
      block size is used.
      
      This fix improves the speed 2 compression performance of a few
      yt sequence, typically ranging from 1% - 2%, up to 5% at median
      to low bit-rate.
      
      Change-Id: Id6b09a5695d9e7651c6dfbc2c6a72288b08af7fb
      fe85fabb
    • Adrian Grange's avatar
      Fix calc_highbd_psnr · 54293ee3
      Adrian Grange authored
      Should use the crop dimensions of the frame rather
      than the extended size.
      
      Change-Id: I49ed041a46ff0753d43e074020857b7ff2f95e17
      54293ee3
  12. 26 Feb, 2015 4 commits
  13. 25 Feb, 2015 1 commit