1. 11 Mar, 2011 1 commit
  2. 03 Mar, 2011 2 commits
  3. 25 Feb, 2011 2 commits
  4. 22 Feb, 2011 1 commit
  5. 18 Feb, 2011 4 commits
  6. 16 Feb, 2011 1 commit
    • Yunqing Wang's avatar
      Allocate source buffers to be multiples of 16 · da227b90
      Yunqing Wang authored
      Currently, when the video frame width is not multiples of 16, the
      source buffer has a stride of non-multiples of 16, which forces
      an unaligned load in SAD function and hurts the performance. To
      avoid that, this change allocates source buffers to be multiples
      of 16.
      
      Change-Id: Ib7506e3eb2cea06657d56be5a899f38dfe3eeb39
      da227b90
  7. 15 Feb, 2011 1 commit
  8. 14 Feb, 2011 1 commit
    • James Berry's avatar
      mem leak fix for cpi->tplist · d3dfcde0
      James Berry authored
      checks added to make sure that cpi->tplist
      is freed correctly in vp8_dealloc_compressor_data
      and vp8_alloc_compressor_data.
      
      Change-Id: I66149dbbd25c958800ad94f4379d723191d9680d
      d3dfcde0
  9. 11 Feb, 2011 1 commit
    • Yunqing Wang's avatar
      Add improved_mv_pred flag in real-time mode · 9d0b2cbb
      Yunqing Wang authored
      As mentioned in check-in "Improve motion search in real-time mode",
      MV prediction calculation causes speed loss for speed 7 and above.
      This change added a flag to turn off this calculation for speed>6
      in real-time mode.
      
      Change-Id: I9f4ae5a8bf449222d1784b54e7d315fc8347b2d1
      9d0b2cbb
  10. 10 Feb, 2011 2 commits
    • John Koleszar's avatar
      Fix relative include paths · 02321de0
      John Koleszar authored
      Allow compiling without adding vp8/{common,encoder,decoder} to the
      include paths.
      
      Change-Id: Ifeb5dac351cdfadcd659736f5158b315a0030b6c
      02321de0
    • Yunqing Wang's avatar
      Improve motion search in real-time mode · 41e6eceb
      Yunqing Wang authored
      Applied better MV prediction in real-time mode, which improves
      the encoding quality.
      
      Used quarter-pixel search instead of iterative sub-pixel search
      for speed >=5 to improve encoding performance.
      
      Tests on the test set showed:
      1. For speed=-5, quality improvement: 1.7% on AvgPSNR and 2.1%
      on SSIM, performance improvement: 3.6% (This counts in the
      performance lose caused by MV prediction calculation in "Improve
      MV prediction in vp8_pick_inter_mode() for speed>3").
      2. For speed=-8, quality improvement: 2.1% on AvgPSNR and 2.5%
      on SSIM. but, 6.9% performance decrease because of MV prediction
      calculation. This should be improved later.
      
      Change-Id: I349a96c452bd691081d8c8e3e54419e7f477bebd
      41e6eceb
  11. 09 Feb, 2011 2 commits
  12. 04 Feb, 2011 1 commit
    • John Koleszar's avatar
      correct quantizer initialization · 63fc44df
      John Koleszar authored
      The encoder was not correctly catching transitions in the quantizer
      deltas. If a delta_q was set, then the quantizer would be reinitialized
      on every frame, but if they transitioned to 0, the quantizer would
      not be reinitialized, leading to a encode-decode mismatch.
      
      This bug was triggered by commit 999e155f, which sets a Y2 delta Q
      for very low base Q levels.
      
      Change-Id: Ia6733464a55ee4ff2edbb82c0873980d345446f5
      63fc44df
  13. 02 Feb, 2011 1 commit
    • Attila Nagy's avatar
      Delay auto key frame insertion in realtime configuration · e5904f2d
      Attila Nagy authored
      Whe auto keyframe insertion is enabled and conditions are right (scene change)
      the encoder can decide to insert a key frame and does a re-encoding. This can
      introduce extra latency. In RT mode we do not do the re-encoding of the current
      frame but force the next frame to key frame.
      
      Change-Id: I15c175fa845ac4c1a1f18bea3676e154669522a7
      e5904f2d
  14. 01 Feb, 2011 1 commit
    • Attila Nagy's avatar
      Improved encoder threading · 385c2a76
      Attila Nagy authored
      Reduce the number of sync points by letting each thread
      continue imediatly with a new MB row.
      Better multicore scaling, improves performance by 5-20% on ARM multicore.
      
      Change-Id: Ic97e4d1c4886a842c85dd3539a93cb217188ed1b
      385c2a76
  15. 26 Jan, 2011 3 commits
    • Scott LaVarnway's avatar
      Removed unused members from VP8_COMP · c4887da3
      Scott LaVarnway authored
      Change-Id: I8f3f2642b02975fbdb14982984a29821f80d30d3
      c4887da3
    • Paul Wilkins's avatar
      Correction to buffer update for non-viewable frames. · a3f71ccf
      Paul Wilkins authored
      The code previously tested cpi->common.refresh_alt_ref_frame
      but there are situations where this flag may be set for viewable frames.
      
      The correct test should be !cm->show_frame.
      
      Change-Id: Ia1a600622992a4a68fe1d38ac23bf6b34b133688
      a3f71ccf
    • Yaowu Xu's avatar
      cap the best quantizer for 2nd order DC · 999e155f
      Yaowu Xu authored
      This commit also removes artificial RDMULT cap for low quantizers.
      The intention is to address some abnormal behavior of mode selections
      at the low quantizer end, where many macroblocks were coded with
      SPLITMV with all partitions using same motion vector including (0,0).
      This change improves the compression quality substantially for high
      quality encodings in both PSNR and SSIM terms. Overall effect on
      mid/low rate range is also positive for all metrics, but smaller
      in magnitude.
      
      Change-Id: I864b29c4bd9ff610d2545fa94a19cc7e80c02667
      999e155f
  16. 25 Jan, 2011 1 commit
    • Yunqing Wang's avatar
      Refine motion vector prediction for NEWMV mode · dcaaadd8
      Yunqing Wang authored
      Adjust checking points in motion vector prediction to better cover
      possible movements, and get a better prediction. Tests on test
      clips showed a 0.1% improvement in SSIM, and no change in PSNR
      and performance.
      
      Change-Id: Ifdab05d35e10faea1445c61bb73debf888c9d2f8
      dcaaadd8
  17. 20 Jan, 2011 1 commit
    • Paul Wilkins's avatar
      Further work to reduce pulsing. · 8064583d
      Paul Wilkins authored
      These changes are specifically targeted at fade transitions to
      static scenes. Here we want to place a GF/ARF immediately
      after the fade and prevent an ARF just  before the fade.
      
      Also some code lines and comment lines shortened to 80 chars
      while I was there.
      
      Change-Id: Iefdc09a4fa7b265048fc017246b73e138693950f
      8064583d
  18. 18 Jan, 2011 3 commits
    • Jim Bankoski's avatar
      vp8e -removed undefined max call · edcf74c6
      Jim Bankoski authored
      Change-Id: I42a86b0488f44115f09551fc5ad6d711fd470f0d
      edcf74c6
    • Paul Wilkins's avatar
      Further CQ, Key frame and ARF changes · 57136a26
      Paul Wilkins authored
      This code fixes a bug in the calculation of
      the minimum Q for alt ref frames.
      
      It also allows an extended gf/arf interval for sections
      of clips that completely static (or nearly so).
      
      Change-Id: I1a21aaa16d4f0578e5f99b13bebd78d59403c73b
      57136a26
    • Attila Nagy's avatar
      Fix encoder real-time only configuration. · cb791aaa
      Attila Nagy authored
      Remove allocation/deallocation of stats storage.
      Remove full search functions in machine specific encoder inits.
      Remove last pass validation in  validate_config.
      
      Change-Id: I7f29be69273981a4fef6e80ecdb6217c68cbad4e
      cb791aaa
  19. 17 Jan, 2011 1 commit
    • Paul Wilkins's avatar
      Fix CQ range and experimental KF sizing changes. · 339c5127
      Paul Wilkins authored
      The CQ level was not using the q_trans[] array to convert
      to a 0-127 range as per min and maxq
      
      Experimental change to try and match the reconstruction
      error for forced key frames approximately to that of the
      previous frame by means of the recode loop. Though this
      may cause extra recodes and the recode behavior has not
      been optimized, it can only happen on forced key frames.
      
      Change-Id: I1f7e42d526f1b1cb556dd461eff1a692bd1b5b2f
      339c5127
  20. 14 Jan, 2011 1 commit
    • Paul Wilkins's avatar
      KF/GF Pulsing · c8338ebf
      Paul Wilkins authored
      This change is designed to try and reduce pulsing effects when moving
      with a complex transition like a fade, into an easy or static section in
      an otherwise difficult clip in CQ mode.
      
      The active CQ level is relaxed down to the user entered level for frames that
      are generating less than the passed in minimum bandwidth.
      
      Change-Id: Id6d8b551daad4f489c087bd742bc95418a95f3f0
      c8338ebf
  21. 13 Jan, 2011 1 commit
    • Paul Wilkins's avatar
      One pass rate control correction. · eda7d538
      Paul Wilkins authored
      Fixed discrepancy cpi->ni_frames vs cm->current_video_frame > 150.
      
      Make one pass path explicit.
      
      There is still scope for some odd behaviour around the transition
      point at cpi->ni_frames > 150.
      
      Change-Id: Icdee130fe6e2a832206d30e45bf65963edd7a74d
      eda7d538
  22. 12 Jan, 2011 1 commit
    • Paul Wilkins's avatar
      Limit key frame quantizer for forced key frames. · 55acda98
      Paul Wilkins authored
      Where a key frame occurs because of a minimum interval
      selected by the user, then these forced key frames ideally need
      to be more closely matched in quality to the surrounding frame.
      
      Change-Id: Ia55b1f047e77dc7fbd78379c45869554f25b3df7
      55acda98
  23. 11 Jan, 2011 2 commits
  24. 10 Jan, 2011 1 commit
    • Paul Wilkins's avatar
      Two Pass VBR change · cf7c4732
      Paul Wilkins authored
      Further experiment with restriction of the Q range.
      
      This uses the average non KF/GF/ARF quantizer,  instead
      of just relying on the initial value. It is not such a strong constraint
      but there may be a reduced risk of rate misses.
      
      Change-Id: I424fe782a37a2f4e18c70805e240db55bfaa25ec
      cf7c4732
  25. 07 Jan, 2011 2 commits
    • Paul Wilkins's avatar
      CQ Mode · e0846c9c
      Paul Wilkins authored
      The merge includes hooks to for CQ mode and other code
      changes merged from the test branch.
      
      CQ mode attempts to maintain a more stable quantizer within a clip
      whilst also trying to adhere to a guidline maximum bitrate.
      
      The existing target data rate parameter is used to specify the
      guideline maximum bitrate.
      
      A new parameter allows the user to specify a target CQ level.
      
      For normal (non kf/gf/arf) frames, the quantizer will not drop BELOW the
      user specified value (0-63). However, in some cases the encoder may
      choose to impose a target CQ that is above that specified by the user,
      if it estimates that consistent use of the target value is not compatible
      with guideline maximum bitrate.
      
      Change-Id: I2221f9eecae8cc3c431d36caf83503941b25e4c1
      e0846c9c
    • Scott LaVarnway's avatar
      Removed cpi->target_bits_per_mb · 6dbdfe34
      Scott LaVarnway authored
      cpi->target_bits_per_mb is currently not being used,
      so delete it.  Also removed other unused code in rdopt.c.
      
      Change-Id: I98449f9030bcd2f15451d9b7a3b9b93dd1409923
      6dbdfe34
  26. 06 Jan, 2011 1 commit
    • Paul Wilkins's avatar
      Disable some features for first pass. · 431dac08
      Paul Wilkins authored
      The following features don't make sense for the first
      pass in its current form and have a significant impact on its
      speed (up to 50%).
      
      Slow quantizer, slow dct and trellis optimization.
      
      Change-Id: Id9943f6765ffbd71fc0084ec7dfbc9d376fd6fcd
      431dac08
  27. 29 Dec, 2010 1 commit
    • Yunqing Wang's avatar
      Always update last_frame_type · a864678c
      Yunqing Wang authored
      Scott pointed out that last_frame_type only gets updated while
      loopfilter exists. Since last_frame_type is also needed in
      motion search now, it needs to be updated every frame.
      
      Change-Id: I9203532fd67361588d4024628d9ddb8e391ad912
      a864678c